【墨者学院】:SQL注入漏洞测试(delete注入)


0x00.题目描述:

背景介绍

安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Apache+PHP+MySQL,PHP代码对客户端提交的参数做了些许过滤。来感受过滤过后的SQL手工注入吧。

实训目标

1、掌握SQL注入原理;

2、了解手工注入的方法;

3、了解MySQL的数据结构;

4、了解SQL注入常用注释字符;

5、了解字符串的URL加解密;

解题方向

手工进行SQL注入测试,获取管理密码登录。

0x01.解题思路:

靶场环境:

主界面
维护界面

手工注入:

检测注入点:order by被拦截,用or或者and来测试,发现空格以及=被拦截,空格可以用/**/代替,等号用like来代替,成功检测到注入点。

payload:/new_list.php?id=-1/**/or/**/1/**/like/**/1


检测字段数:order by语句可行,当为4时正常,当为5时出现错误,说明字段数为4。


联合注入爆库,首先是爆数据库名:

payload:/new_list.php?id=-1/**/%75nion/**/%73elect/**/1,2,database(),4%23

注:union,select关键字均被过滤,故而转URL编码进行绕过。

爆数据库名

接下来就是爆表名,列名以及字段了。

爆表名
爆列名


爆字段

status为1的即为账号密码,密码用MD5转一下即可~

得到最终的key:mozhe9598eda2ea48538e9ab8fd688bc

sqlmap注入:

哇,sqlmap居然检测不到注入点~以后sqlmap检测不到的地方必须手工检测一遍啊


0x02.总结:

1.空格过滤:/**/,%0a,%a0,%09,%0c,%0d,%0b代替;等于号可以用like代替;

2.关键字过滤:双写,大小写,编码等;

你可能感兴趣的:(【墨者学院】:SQL注入漏洞测试(delete注入))