“网鼎杯”的难度到底有多大?看看2022年第三届的原题WP。

文摘   2024-10-12 13:53   安徽  


本文字数:1947|预计3分钟读完

“网鼎杯”是迄今为止全球规模最大、覆盖面最广的国家级网络安全赛事,被称为网络安全“奥运会”,目前已成功举办3届。

部分选手甚至可以直接评获奖证书入职大厂、特殊人才引进。


号主参加了两届“网鼎杯”,今天分享整理一下部分赛题



文丨hacking


雷军是如何又造手机和又造车的?

1


赛事平台高-举办方



2024届“网鼎杯”已经开始报名,让我们看看近两届主办方就知道赛事的含金量有多大了,第3届“网鼎杯”

第3届“网鼎杯”


公安部指导,国家网络与信息安全信息通报中心、浙江省公安厅、杭州市人民政府共同支持,杭州市公安局和余杭区人民政府联合主办。


第4届“网鼎杯”


安部、教育部共同指导,贵阳市人民政府、贵州省公安厅联合主 办,国家网络与信息安全信息通报中心、教育部教育管理信息中心、网络空间 安全专业教学指导委员会作为支持单位,公安部第一研究所作为承办单位。

2


2022年 第3届 白虎组




"网鼎杯"难度果然不一般,整理了部分解题过程,供大家学习。(后期会将做题文件上传)

解题过程

签到题

八道网络安全选择题,百度都能搜索,记不全了


杂项1

破压缩包

得到密码

得到excel里,打开,passwd解密

7EqufFnrSGk=



nmy0612打开flag.7z

里面韩文,用工具解密

Cyberchef

crypto582

题目

from Crypto.Util.number import getPrimeimport hashlib
e = 2022m = getPrime(512)m1 = getPrime(512)m2 = getPrime(512)flag = m + m1 + m2flag = hashlib.md5(str(flag).encode('utf-8')).hexdigest()
c1 = pow(m+m1,e,m*m1)c2 = pow(m+m2,e,m*m2)c3 = pow(m1+m2,e,m1*m2)
x = pow(m1+2022,m,m*m1)y = pow(m2+2022,m,m*m2)z = pow(m+2022,m1,m*m1)
print('c1 =',c1)print('c2 =',c2)print('c3 =',c3)print('x =',x)print('y =',y)print('z =',z)

'''c1 = 85139434329272123519094184286276070319638471046264384499440682030525456122476228324462769126167628121006213531153927884870307999106015430909361792093581895091445829379547633304737916675926004298753674268141399550405934376072486086468186907326396270307581239055199288888816051281495009808259009684332333344687c2 = 104554808380721645840032269336579549039995977113982697194651690041676187039363703190743891658905715473980017457465221488358016284891528960913854895940235089108270134689312161783470000803482494370322574472422461483052403826282470850666418693908817591349159407595131136843764544166774390400827241213500917391144c3 = 94771625845449128812081345291218973301979152577131568497740476123729158619324753128517222692750900524689049078606978317742545997482763600884362992468406577524708622046033409713416026145377740182233674890063333534646927601262333672233695863286637817471270314093720827409474178917969326556939942622112511819330x = 78237329408351955465927092805995076909826011029371783256454322166600398149132623484679723362562600068961760410039241554232588011577854168402399895992331761353772415982560522912511879304977362225597552446397868843275129027248765252784503841114291392822052506837132093960290237335686354012448414804030938873765y = 100442166633632319633494450595418167608036668647704883492068692098914206322465717138894302011092841820156560129280901426898815274744523998613724326647935591857728931946261379997352809249780159136988674034759483947949779535134522005905257436546335376141008113285692888482442131971935583298243412131571769294029z = 104712661985900115750011628727270934552698948001634201257337487373976943443738367683435788889160488319624447315127992641805597631347763038111352925925686965948545739394656951753648392926627442105629724634607023721715249914976189181389720790879720452348480924301370569461741945968322303130995996793764440204452'''



解密脚本


费马定理import hashlib,mathe=2022
c1 = 85139434329272123519094184286276070319638471046264384499440682030525456122476228324462769126167628121006213531153927884870307999106015430909361792093581895091445829379547633304737916675926004298753674268141399550405934376072486086468186907326396270307581239055199288888816051281495009808259009684332333344687c2 = 104554808380721645840032269336579549039995977113982697194651690041676187039363703190743891658905715473980017457465221488358016284891528960913854895940235089108270134689312161783470000803482494370322574472422461483052403826282470850666418693908817591349159407595131136843764544166774390400827241213500917391144c3 = 94771625845449128812081345291218973301979152577131568497740476123729158619324753128517222692750900524689049078606978317742545997482763600884362992468406577524708622046033409713416026145377740182233674890063333534646927601262333672233695863286637817471270314093720827409474178917969326556939942622112511819330x = 78237329408351955465927092805995076909826011029371783256454322166600398149132623484679723362562600068961760410039241554232588011577854168402399895992331761353772415982560522912511879304977362225597552446397868843275129027248765252784503841114291392822052506837132093960290237335686354012448414804030938873765y = 100442166633632319633494450595418167608036668647704883492068692098914206322465717138894302011092841820156560129280901426898815274744523998613724326647935591857728931946261379997352809249780159136988674034759483947949779535134522005905257436546335376141008113285692888482442131971935583298243412131571769294029z = 104712661985900115750011628727270934552698948001634201257337487373976943443738367683435788889160488319624447315127992641805597631347763038111352925925686965948545739394656951753648392926627442105629724634607023721715249914976189181389720790879720452348480924301370569461741945968322303130995996793764440204452
a=(x-2022)**e-c1b=(y-2022)**e-c2c=math.gcd(a,b)d=(x-e)%ce=(y-e)%c+cflag=c+d+eflag=hashlib.md5(str(flag).encode('utf-8')).hexdigest()
print("flag{"+(flag)+"}")




Re

#include <stdint.h>#include <stdio.h>#include "defs.h"using namespace std;
uint32_t bit_move(uint32_t val, int n) { int size = 8; return (val << (size - n) | (val >> n));}
unsigned char enc[] = { 0xF2, 0x7F, 0x09, 0x05, 0xD7, 0x77, 0x16, 0x91, 0x25, 0x01, 0x2E, 0xC5, 0x97, 0x26, 0x63, 0x82, 0x01, 0x40, 0x15, 0x2D, 0xFC, 0x53, 0xDB, 0xD3, 0xC4, 0xDB, 0x0A, 0x1F, 0x82, 0x1E, 0x99, 0x4E, 0xFE, 0x0C, 0x80, 0xB8, 0xA5, 0x61, 0x0E, 0x99, 0xDF, 0x39 };
//0x6526B0D9void sub_140001950(unsigned char* enc) { int i; unsigned int v1; unsigned int v2; unsigned int sum; int v4;
for (i = 0; i != 5; ++i) { v1 = *(uint32_t*)&enc[8 * i]; v2 = *(uint32_t*)&enc[8 * i + 4]; sum = 0x6526B0D9; v4 = 32; do { sum += 0x61C88647; v2 -= ((v1 << 4) + 0x43) ^ (sum + v1) ^ ((v1 >> 5) + 0x56); v1 -= (v2 + sum) ^ ((v2 << 4) | 0xC) ^ ((v2 >> 5) + 0x2D); --v4; } while (v4); *(uint32_t*)&enc[8 * i] = v1; *(uint32_t*)&enc[8 * i + 4] = v2; }}
int main() { for (int i = 0; i < 42; ++i) { enc[i] = bit_move(enc[i], 5);
} for (int i = 0; i < 42; ++i) { enc[i] ^= 0x66; enc[i] -= 0x32; }
sub_140001950(enc); printf("%s", enc); return 0;}

Web1

1.dirmap目录扫描,御剑扫不到,git源代码泄漏,githack拉去源代码

2.扫描结果找到上传页面public/index.php,注意public/index上传不成功,审计源代码查看上传逻辑.htaccess绕过

3.同时上传一句话木马和.htaccess,保证两个文件在一个目录下,

4.getshell,查看flag




3


2022年 第三届 青龙组

省流:

之前参加网鼎杯的写的解题报告,整理了一下发上来,排名能靠前全靠逆向第二题拿大分。

Crypto

题目1

解题过程 读题是一个hash函数碰撞的问题,总共13位,已知前五位,搜一搜发现苹果AirDrop采用的hash函数是sha256,写个python脚本爆破一下

1.需要找到一个8位数字的代码,将其附加到密钥"86170"后进行SHA-256哈希,结果与给定的哈希匹配。

2.暴力破解方法:遍历所有可能的8位数字组合(从"00000000"到"99999999"),将每个组合附加到密钥后进行哈希,并将结果与给定的哈希进行比较。

3.匹配即停止:当找到匹配项时,我们打印出该代码及其对应的哈希值。

import hashlib
ss = '0123456789'

txt2 = "86170"

sha256enc="c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc"
key=txt2

for a in ss:
  for b in ss:
    for c in ss:
      for d in ss:
        for e in ss:
           for f in ss:
             for g in ss:
               for h in ss:


                  code = a+b+c+d+e+f+g+h
                  encinfo = hashlib.sha256(bytes( (key+code).encode() ) ).hexdigest()
                  if encinfo == sha256enc:
                   print(code)
                   print(encinfo)
                   break

得到未知密文部分为“91733716” 拼起来即为flag:{8617091733716}

Reverse

题目1

解题过程 下载文件是一个Windows可执行程序Re2.exe。运行程序时,提示输入flag。

使用IDA Pro打开程序文件,发现只有几个函数,这表明程序可能进行了加壳处理。看到红框部分指令(如图片中所示),这通常表示程序在解压完成后进入真正的指令执行部分。

将程序拖入x64dbg,在怀疑的解压完成处设置断点,方便后续快速进入真实指令执行部分。尝试使用x64dbg逐步分析程序,但感觉不太顺利。尝试查了下壳,使用DetectEasy发现是upx壳。

尝试使用命令upx -d Re2.exe进行脱壳,但未成功,可能程序进行了防护处理。使用010 Editor打开程序,发现一些被替换的内容(如UPX0和UPX1),手动将它们修改回原始值。分别修改成UPX0和UPX1

再次使用UPX脱壳命令,成功脱壳。结合IDA的静态分析和x64dbg的动态调试,可以更快地进行后续分析。

根据之前分析,直接在ida中找到对输入求长度并判断的部分(从字符串中也可以找到)

在IDA中找到对输入求长度并判断的部分代码(如图片所示)。第一个校验点:输入长度应为20。第二个校验点:输入的每个字符进行异或运算(如0x66)。

进入sub_1400111E5函数,查看详细的校验逻辑。代码简单对输入进行了运算,并将结果与全局数组内容进行比较。

就简单对输入运算了下,最后判断运算结果和如下图的全局数组内容是否一致,这只需要反着计算即可拿到flag

已知全局数组的内容:

a = [0x4B, 0x48, 0x79, 0x13, 0x45, 0x30, 0x5C, 0x49, 0x5A, 0x79, 0x13, 0x70, 0x6D, 0x78, 0x13, 0x6F, 0x48, 0x5D, 0x64, 0x64, 0x18]

逆向运算得到flag:

for b in a:
    print(chr(((b ^ 0x50) - 10) ^ 0x66), end="")

a = [0x4B, 0x48, 0x79, 0x13, 0x45, 0x30, 0x5C, 0x49, 0x5A, 0x79, 0x13, 0x70, 0x6D, 0x78, 0x13, 0x6F, 0x48, 0x5D, 0x64, 0x64, 0x18]
for b in a:
    print(chr(((b^0x50) - 10)^0x66), end="")

运行则得flag

题目2

解题过程

拿到apk发现安装不成,尝试重新打包成apk并签名,成功安装 使用mt管理器反编译一下dex,发现函数指令被抽走了,再一看luoyesiqiu.shell里的类,更加确定是函数抽取型加固,得想办法把恢复原始dex,一开始使用blackdex64来恢复,没成功

于是考虑使用frida脚本,github有dump dex的,直接用一下命令

frida-dexdump -U -f com.example.testchouqu

成功提出dex文件,如下图

依次用mt管理器打开,找到有Checkfxxk的dex,这里是classes02.dex,执行dex2jar转换为jar包,方便分析,使用jd-jui打开分析。

思路很明确,输入两个字符串,一个必须是“helloctf”,另一个需要逆向出来。可以看到代码使用了控制流混淆,没猜错的话用的是BlackObfuscator(Android Dex控制流平坦化混淆)。尝试寻找反混淆的工具,未果,只好硬分析,期间又尝试了执行该class中的函数,但会死循环。分析差不多,主要是下面的代码

猜测应该是已有的某种加密,否则不会这么复杂,查询资料发现基本和tea加密一样,i6,i8相当于两个明文,i2即sum,1640531527为delta,循环32轮。原始tea加密过程中delta是成倍增加的,但在这里是成倍减少,因此解密算法也和常规的不一样,这里也花了大量时间去思考 解密时delta初始值应该是加密是最后的那个delta值,并且要成倍递增才行。下图是最终比较阶段,可以看到new byte[]后8个字节是可打印的字符,再考虑到arrayofInt2[0]=i6 arrayofInt2[1]=i8,即只对前8字节进行tea加密,因此要输入的后8个字符串就是下面后8个字节,前八个字节按照上面说的tea解密算法解密即可。

写脚本解密即可拿到flag

public class HelloWorld {
    // 将byte转换为无符号int
    public static int transform(byte b) {
        return b < 0 ? b + 256 : b;
    }

    // 将int转换为byte数组
    public static byte[] toHH(int n) {
        byte[] b = new byte[4];
        b[3] = (byte) (n & 0xff);
        b[2] = (byte) (n >> 8 & 0xff);
        b[1] = (byte) (n >> 16 & 0xff);
        b[0] = (byte) (n >> 24 & 0xff);
        return b;
    }

    public static void main(String[] args) {
        // 预设的加密数组和byte数组
        int[] arrayint = {2023708229, -158607964, -2120859654, 1167043672};
        byte[] p = {-63, -69, -86, 43, 126, 114, 32, -75};

        // 将byte数组转换为int
        int i6 = transform(p[3]) | transform(p[2]) << 8 | transform(p[1]) << 16 | p[0] << 24;
        int i8 = transform(p[7]) | transform(p[6]) << 8 | transform(p[5]) << 16 | p[4] << 24;

        // TEA解密算法
        int k = arrayint[0];
        int m = arrayint[1];
        int n = arrayint[2];
        int i1 = arrayint[3];
        int i2 = 0 - 32 * 1640531527;  // 初始delta值为加密时的最后一个delta值

        for (int a = 0; a < 32; a++) {
            i8 -= ((i6 << 4) + n) ^ (i6 + i2) ^ ((i6 >> 5) + i1);
            i6 -= ((i8 << 4) + k) ^ (i8 + i2) ^ ((i8 >> 5) + m);
            i2 += 1640531527;  // delta值递增
        }

        // 转换解密结果并打印
        byte[] res = toHH(i6);
        byte[] res2 = toHH(i8);
        byte[] other = {102, 49, 65, 103, 121, 107, 111, 99};  // 固定的后8位

        for (byte b : res) {
            System.out.print((char) b);
        }
        for (byte b : res2) {
            System.out.print((char) b);
        }
        for (byte b : other) {
            System.out.print((char) b);
        }
    }
}

题目3

题目是go语言写的东西,首先安装配置go运行环境,花了点时间,将内容复制到Challenge.go

解题过程 执行go run challenge.go

让输入两个函数 函数1:该函数有6个参数,第三个参数名字为gLIhR 打开文件并搜索gLIhR:使用代码编辑器打开challenge.go文件,搜索字符串gLIhR。我们需要找到一个有6个参数的函数,并且第三个参数名为gLIhR。

在Go语言中,函数定义的形式通常如下:

func functionName(param1 type1, param2 type2, gLIhR type3, param4 type4, param5 type5, param6 type6) returnType {
    // function body
}

函数2:该函数被3个函数调用,且该函数调用了函数cHZv5op8rOmlAkb6

该题纯粹体力活,函数1查找gLIhR string,寻找满足条件的即可

函数2查找return cHZv5op8rOmlAkb6(,然后有查找该项的调用者的名字,统计次数,看是否被其他函数调用了3次,

最终可得到下面结果


4


2022年 第三届 部分其他题


Crypto



题目


解题过程



读题是一个hash函数碰撞的问题,总共13位,已知前五位,搜一搜发现苹果AirDrop采用的hash函数是sha256,写个python脚本爆破一下

import hashlibss = '0123456789'
txt2 = "86170"
sha256enc="c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc"key=txt2
for a in ss: for b in ss: for c in ss: for d in ss: for e in ss: for f in ss: for g in ss: for h in ss:

code = a+b+c+d+e+f+g+h encinfo = hashlib.sha256(bytes( (key+code).encode() ) ).hexdigest() if encinfo == sha256enc: print(code) print(encinfo) break


得到未知密文部分为“91733716”
拼起来即为flag:{8617091733716}

Reverse 1



题目


解题过程



下载下来是个win可执行程序Re2.exe,运行一下让输入flag,拖进ida发现就几个函数,肯定是加壳了,那ida就不太好使了,但能看出在红框部分表示真正的指令unpack完成了


然后拖进x64dbg,在该处下断点,方便后续快速进入真正的指令,这时还没想着查壳,想着肯定是自定义壳,就在x64dbg中一点一点分析,分析了几个函数,感觉不太顺利,尝试查了下壳,使用DetectEasy发现是upx壳。


使用命令upx -d脱壳,发现不太行,估计做了手脚,010Editor打开发现框中内容被替换,分别修改成UPX0和UPX1


再次脱壳,成功!这样结合IDA静态分析和x64dbg动态分析就可以很快解题


根据之前分析,直接在ida中找到对输入求长度并判断的部分(从字符串中也可以找到)


如上图分析第一处校验(进入check后的内容),第一个框即输入长度为20,第二个框将输入全部异或0x66。
第二处即sub_1400111E5,进入后如下


就简单对输入运算了下,最后判断运算结果和如下图的全局数组内容是否一致,这只需要反着计算即可拿到flag


a = [0x4B, 0x48, 0x79, 0x13, 0x45, 0x30, 0x5C, 0x49, 0x5A, 0x79, 0x13, 0x70, 0x6D, 0x78, 0x13, 0x6F, 0x48, 0x5D, 0x64, 0x64, 0x18]for b in a: print(chr(((b^0x50) - 10)^0x66), end="")

运行则得flag



Reverse 2



题目


解题过程



拿到apk发现安装不成,尝试重新打包成apk并签名,成功安装
使用mt管理器反编译一下dex,发现函数指令被抽走了,再一看luoyesiqiu.shell里的类,更加确定是函数抽取型加固,得想办法把恢复原始dex,一开始使用blackdex64来恢复,没成功

于是考虑使用frida脚本,githubdump dex的,直接用一下命令
frida-dexdump -U -f com.example.testchouqu
成功提出dex文件,如下图

依次mt管理器打开,找到有Checkfxxk的dex,这里是classes02.dex,执行dex2jar转换为jar包,方便分析,使用jd-jui打开分析。

思路很明确,输入两个字符串,一个必须是“helloctf”,另一个需要逆向出来。
可以看到代码使用了控制流混淆,没猜错的话用的是BlackObfuscatorAndroid Dex控制流平坦化混淆)。尝试寻找反混淆的工具,未果,只好硬分析,期间又尝试了执行该class中的函数,但会死循环。

分析差不多,主要是下面的代码


猜测应该是已有的某种加密,否则不会这么复杂,查询资料发现基本和tea加密一样,i6i8相当于两个明文,i2sum1640531527delta,循环32轮。原始tea加密过程中delta是成倍增加的,但在这里是成倍减少,因此解密算法也和常规的不一样,这里也花了大量时间去思考。
解密时delta初始值应该是加密是最后的那个delta值,并且要成倍递增才行。
下图是最终比较阶段,可以看到new byte[]后8个字节是可打印的字符,再考虑到arrayofInt2[0]=i6 arrayofInt2[1]=i8,即只对前8字节进行tea加密,因此要输入的后8个字符串就是下面后8个字节,前八个字节按照上面说的tea解密算法解密即可。

写脚本解密即可拿到flag


public class HelloWorld {    //主函数,主方法,程序的入口 main    public static int transform(byte b){        int res;        if(b<0){            res = b + 256;        }else{            res = b;        }        return res;    }
public static byte[] toHH(int n) { byte[] b = new byte[4]; b[3] = (byte) (n & 0xff); b[2] = (byte) (n >> 8 & 0xff); b[1] = (byte) (n >> 16 & 0xff); b[0] = (byte) (n >> 24 & 0xff); return b; } public static void main(String[] args) { //输出语句 int[] arrayint = {2023708229, -158607964, -2120859654, 1167043672}; byte[] p = {-63, -69, -86, 43, 126, 114, 32, -75}; int i = transform(p[3]) | transform(p[2]) << 8 | transform(p[1]) << 16 | p[0] << 24; int j = transform(p[3+4]) | transform(p[2+4]) << 8 | transform(p[1+4]) << 16 | p[0+4] << 24; int k = arrayint[0]; int m = arrayint[1]; int n = arrayint[2]; int i1 = arrayint[3]; int i6 = i; int i8 = j; int i2 = 0 - 32*1640531527;
for(int a=0;a<32;a++){

i8 -= (i6<<4) + n^i6 + i2^(i6>>5) + i1; i6 -= (i8<<4) + k^i8 + i2^(i8>>5) + m; i2 += 1640531527; } byte[] res = toHH(i6); byte[] res2 = toHH(i8); byte [] other = {102, 49, 65, 103, 121, 107, 111, 99}; for (byte b : res) { System.out.print((char)b+""); } for (byte b : res2) { System.out.print((char)b+""); } for (byte b : other) { System.out.print((char)b+""); } }}

Reverse3



题目


解题过程



题目是go语言写的东西,首先安装配置go运行环境,花了点时间,将内容复制到Challenge.go

执行go run challenge.go


让输入两个函数
函数1:该函数有6个参数,第三个参数名字为gLIhR


函数2:该函数被3个函数调用,且该函数调用了函数cHZv5op8rOmlAkb6


该题纯粹体力活,函数1查找gLIhR string,寻找满足条件的即可


函数2查找return cHZv5op8rOmlAkb6(,然后有查找该项的调用者的名字,统计次数,看是否被其他函数调用了3次,


最终可得到下面结果



参考:
https://mp.weixin.qq.com/s/7GJ6XDrIuHuUXFCHOJS0CA
https://mp.weixin.qq.com/s/LmeX3DhYbe0BPsaSB5RaIA
https://mp.weixin.qq.com/s/V8GCI4r2ydCOBMQqKoev6g



【Hacking黑白红】,一线渗透攻防实战交流公众号

回复“电子书”获取web渗透、CTF电子书:

回复“视频教程”获取渗透测试视频教程;  

回复“内网书籍”获取内网学习书籍;        

回复“CTF工具”获取渗透、CTF全套工具;

回复“内网渗透;获取内网渗透资料;

回复护网;获取护网学习资料 ;

回复python,获取python视频教程;

回复java,获取Java视频教程;

回复go,获取go视频教程


知识星球


【Hacking藏经阁】知识星球致力于分享技术认知

1、技术方面。主攻渗透测试(web和内网)、CTF比赛、逆向、护网行动等;

400G渗透教学视频、80多本安全类电子书、50个渗透靶场(资料主要来自本人总结、以及学习过程中购买的课程)

2、认知方面。副业经营、人设IP打造,具体点公众号运营、抖*yin等自媒体运营(目前主要在运营两个平台4个号)。


如果你也想像我一样,不想35岁以后被动的去面试,那么加入星球我们一起成长。




欢迎加入99米/年,平均每天2毛7分钱,学习网络安全一整年。





渗透实战系列



【渗透实战系列】|52-记一次"91"站点渗透

【渗透实战系列】51|- 一次BC站点的GetShell过程

【渗透实战系列】50|- Log4j打点后与管理员斗智斗勇

【渗透实战系列】49|-实战某高校的一次挖矿病毒的应急处置

【渗透实战系列】|48-一次内网渗透

渗透实战系列】|47-记一次对某鱼骗子卖家的溯源

【渗透实战系列】|46-渗透测试:从Web到内网

【渗透实战系列】|45-记一次渗透实战-代码审计到getshell

【渗透实战系列】|44-记一次授权渗透实战(过程曲折,Java getshell)

【渗透实战系列】|43-某次通用型漏洞挖掘思路分享

【渗透实战系列】|42-防范诈骗,记一次帮助粉丝渗透黑入某盘诈骗的实战

【渗透实战系列】|41-记一次色*情app渗透测试

【渗透实战系列】|40-APP渗透测试步骤(环境、代理、抓包挖洞)

▶【渗透实战系列】|39-BC渗透的常见切入点(总结)

【渗透实战系列】|38-对某色情直播渗透

【渗透实战系列】|37-6年级小学生把学校的网站给搞了!

【渗透实战系列】|36-一次bc推广渗透实战

【渗透实战系列】|35-旁站信息泄露的dedecms站点渗透

【渗透实战系列】|34-如何用渗透思路分析网贷诈骗链

【渗透实战系列】|33-App渗透 ,由sql注入、绕过人脸识别、成功登录APP

【渗透实战系列】|32-FOFA寻找漏洞,绕过杀软拿下目标站

【渗透实战系列】|31-记一次对学校的渗透测试

【渗透实战系列】|30-从SQL注入渗透内网(渗透的本质就是信息搜集)

【渗透实战系列】|29-实战|对某勒索APP的Getshell

【渗透实战系列】|28-我是如何拿下BC站的服务器

【渗透实战系列】|27-对钓鱼诈骗网站的渗透测试(成功获取管理员真实IP)

【渗透实战系列】|26一记某cms审计过程(步骤详细)

【渗透实战系列】|25一次从 APP 逆向到 Getshell 的过程

【渗透实战系列】|24-针对CMS的SQL注入漏洞的代码审计思路和方法

【渗透实战系列】|23-某菠菜网站渗透实战

【渗透实战系列】|22-渗透系列之打击彩票站

【渗透实战系列】|21一次理财杀猪盘渗透测试案例

【渗透实战系列】|20-渗透直播网站

【渗透实战系列】|19-杀猪盘渗透测试

【渗透实战系列】|18-手动拿学校站点 得到上万人的信息(漏洞已提交)

【渗透实战系列】|17-巧用fofa对目标网站进行getshell

【渗透实战系列】|16-裸聊APP渗透测试

【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点

【渗透实战系列】|14-对诈骗(杀猪盘)网站的渗透测试

【渗透实战系列】|13-waf绕过拿下赌博网站

【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局

【渗透实战系列】|11 - 赌博站人人得而诛之

【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)

【渗透实战系列】|9-对境外网站开展的一次web渗透测试(非常详细,适合打战练手)

【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)

【渗透实战系列】|7-记一次理财杀猪盘渗透测试案例

【渗透实战系列】|6- BC杀猪盘渗透一条龙

【渗透实战系列】|5-记一次内衣网站渗透测试

【渗透实战系列】|4-看我如何拿下BC站的服务器

【渗透实战系列】|3-一次简单的渗透

【渗透实战系列】|2-记一次后门爆破到提权实战案例

【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)


    

长按-识别-关注

Hacking黑白红

一个专注信息安全技术的学习平台

点分享

点收藏

点点赞

点在看


Hacking黑白红
知黑、守白、弘红;白帽、大厂、安防、十年、一线、老兵。【分享】个人渗透实战、编程、CTF、挖SRC、红蓝攻防、逆向,代码审计之经历、经验。
 最新文章