靶场链接 https://hack.zkaq.cn
一、查找有无sql注入点
1.首先找到可能存在sql注入的网页
2.利用and 1=1发现做了过滤.....
二、使用order by 查字段数
1.用这个只能猜(二分法)
可以order by 1,2,3,4,5....的尝试,也可以1,5,10,15....的猜测(推荐)
?id=171 order by 11
经过尝试,字段为10时显示正常字段
?id=171 order by 10
三、用ModHeader绕过WAF
1..因为网页做了WAF过滤(网络应用防火墙)防护,这里我们考虑用cookie注入,可以进行绕过:我们要使用一个小工具进行注入ModHeader(火狐插件)
ModHeader让我们可以自定义HTTP请求头(Request header)或者是重写响应头(Reponse header),包括新增请求头/响应头或者覆盖浏览器设置的请求头的默认值,同时还可以根据URL Pattern来只对特定网站生效。
打开这款插件直接在Name上写Cookie Value处填写注入参数即可然后按上面的键开始(value中的值需要注意的是空格用+表示)
2.使用联合查询
我们做了猜测一般表名为admin,猜测尝试字段(admin,password,)
?id=171+union+select+1,2,3,4,5,6,7,8,9,10+from+admin #查看回显
id=171+union+select+1,username,password,4,5,6,7,8,9,10+from+admin #查询字段值
3.得出字段值(admin:b9a2a2b5dffb918c)
b9a2a2b5dffb918c 为MD5加密 用在线MD5加解密
4. 用御剑扫描器扫描查找网站后台
5.扫出来最有可能的是这几个 然后一一尝试登录就OK
直接在主页面输入admin也行 直接跳转到登录界面
用户就是admin 密码是我们上面破译的 welcome
最后falg拿到 zkz{welcome-control}
四、总结
本题主要用了WAF 应用防火墙的过滤,使得SQL注入在url输入被拦截 ,我们使用可以自定义HTTP请求头(Request header)或者是重写响应头(Reponse header)的ModHeader插件去绕过WAF,然后进行联合查询注入,得出用户admin,用户密码MD5的密文b9a2a2b5dffb918c,解密得welcome,然后主页输入admin,进行登录,最后获得flag zkz{welcome-control}