输入命令sqlmap -u + “风险网址” 检测是否存在sql注入漏洞。
看到返回了 服务器的类型,web环境,数据库类型。确定存在漏洞我们开始下一步的注入。根据返回的数据库类型我们确定数据库为access数据库。使用--tables 猜解表。
猜解完表格后我们进一步猜解表的内容。
命令 : python sqlmap.py -u URL -T admin --columns
注意 暴力破解的线程数 最大为10 ,其他的参数可以直接回车。
猜解完表的内容我们可以直接猜解表列的内容。
5
等待一段时间后,程序工作完毕,查看结果。
如何使用SQLMap绕过WAF POST注入 有两种方法来进行post注入,一种是使用--data参数,将post的key和value用类似GET方式来提交。二是使用-r参数,sqlmap读取用户抓到的POST请求包,来进行POST注入检测。
POST注入
有两种方法来进行post注入,一种是使用--data参数,将post的key和value用类似GET方式来提交。二是使用-r参数,sqlmap读取用户抓到的POST请求包,来进行POST注入检测。
查看payload
之前一直是加本地代理,然后用burpsuit来看sqlmap的payload,到现在才发现用-v参数就可以实现。一直认为-v实现的只是控制警告,debug信息级别。实际上使用-v 3就可以显示注入的payload,4,5,6还可以显示HTTP请求,HTTP响应头和页面。
使用google搜索
sqlmap可以测试google搜索结果中的sql注入,很强大的功能吧。使用方法是参数-g。不过感觉实际使用中这个用的还是很少的。
请求延时
在注入过程中请求太频繁的话可能会被防火墙拦截,这时候--delay参数就起作用了。可以设定两次HTTP请求间的延时。有的web程序会在多次错误访问后屏蔽所有请求,这样就导致之后所有的测试无法进行,绕过这个策略可以使用--safe-url,每隔一段时间去访问一个正常的页面。
伪静态页面
有些web服务器进行了url rewrite或者网站是伪静态的,无法直接提供测试参数,这样子可以使用*来代替要测试的参数。
执行系统命令
当数据库支持,并且当前用户有权限的时候,可以执行系统命令,使用--os-cmd或者--os-shell,具体的讲,当可以执行多语句的时候,会尝试用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)来执行系统命令。不能执行多语句时,仍然会尝试创建一个webshell来执行语句,这时候就需要web的绝对路径了。总体来说,成功率偏低,不过个人也有成功的经验~
测试等级
sqlmap使用--level参数来进行不同全面性的测试,默认为1,不同的参数影响了使用哪些payload,2时会进行cookie注入检测,3时会进行useragent检测。
0x00 前言
现在的网络环境往往是WAF/IPS/IDS保护着Web 服务器等等,这种保护措施往往会过滤挡住我们的SQL注入查询链接,甚至封锁我们的主机IP,所以这个时候,我们就要考虑怎样进行绕过,达到注入的目标。因为现在WAF/IPS/IDS都把sqlmap 列入黑名单了,呵呵!但是本文基于sqlmap 进行绕过注入测试,介绍至今仍然实用有效的技巧,以下策略在特定的环境能够成功绕过,具体是否绕过,请仔细查看输出的信息。
0x01 确认WAF
首先我们判断该Web 服务器是否被WAF/IPS/IDS保护着。这点很容易实现,因为我们在漏扫或者使用专门工具来检测是否有WAF,这个检测,在nmap 的NSE,或者WVS的策略或者APPSCAN的策略中都有,我们可以利用这些来判断。在此我们,也介绍使用sqlmap 进行检测是否有WAF/IPS/IDS
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51types=4" --thread 10 --identify-waf#首选
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51types=4" --thread 10 --check-waf#备选
0x02 使用参数进行绕过
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51types=4" --random-agent -v 2 #使用任意浏览器进行绕过,尤其是在WAF配置不当的时候
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51types=4" --hpp -v 3#使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51types=4" --delay=3.5 --time-sec=60 #使用长的延时来避免触发WAF的机制,这方式比较耗时
root@kali:~# sqlmap -u "http://yiliao.kingdee.com/contents.php?id=51types=4" --proxy=211.211.211.211:8080 --proxy-cred=211:985#使用代理进行注入
POST注入
有两种方法来进行post注入,一种是使用--data参数,将post的key和value用类似GET方式来提交。二是使用-r参数,sqlmap读取用户抓到的POST请求包,来进行POST注入检测。
查看payload
之前一直是加本地代理,然后用burpsuit来看sqlmap的payload,到现在才发现用-v参数就可以实现。一直认为-v实现的只是控制警告,debug信息级别。实际上使用-v 3就可以显示注入的payload,4,5,6还可以显示HTTP请求,HTTP响应头和页面。
使用google搜索
sqlmap可以测试google搜索结果中的sql注入,很强大的功能吧。使用方法是参数-g。不过感觉实际使用中这个用的还是很少的。
请求延时
在注入过程中请求太频繁的话可能会被防火墙拦截,这时候--delay参数就起作用了。可以设定两次HTTP请求间的延时。有的web程序会在多次错误访问后屏蔽所有请求,这样就导致之后所有的测试无法进行,绕过这个策略可以使用--safe-url,每隔一段时间去访问一个正常的页面。
伪静态页面
有些web服务器进行了url rewrite或者网站是伪静态的,无法直接提供测试参数,这样子可以使用*来代替要测试的参数。
执行系统命令
当数据库支持,并且当前用户有权限的时候,可以执行系统命令,使用--os-cmd或者--os-shell,具体的讲,当可以执行多语句的时候,会尝试用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)来执行系统命令。不能执行多语句时,仍然会尝试创建一个webshell来执行语句,这时候就需要web的绝对路径了。总体来说,成功率偏低,不过个人也有成功的经验~
测试等级
sqlmap使用--level参数来进行不同全面性的测试,默认为1,不同的参数影响了使用哪些payload,2时会进行cookie注入检测,3时会进行useragent检测。
儿童的性情 战风俗 取野庭学育互相关注 ,野庭学育的利害 以至否能影响儿童的平生 。是以 ,愈来愈多的怙恃 异常 看重 儿童的学育。现在 ,年夜 多半 怙恃 正在儿童正在母亲肚子面的时刻 便曾经开端 接管 学育,怙恃 盼望 儿童变患上良好 。野庭学育 对于儿童的影响有多年夜 ?野庭学育 对于儿童的影...
毕业 成熟的自我判断 次要是毕业 成熟对付 本身 在学校 时代 思想 政治事务、叙事道德品质和业余学习 、课堂...
给予指导 的感激 怀疑如何写模式 以下:在第一个停止的中心 用一点字体写感激 怀疑这个词。如果 你给或 写了一...
自古以来, 很多 野学的胜利 事实告诉我们,野少是孩子们的第一任先生 ,孩子们成年后会受到野少的影响。昨天给...
在我国 的一点政策之外,有一个封闭的划分 。 是否自成熟以来一直是村官,如果 是否以更糟糕的天气为社会服务,为...
很多 人都写自己 的东西 总结,通过这个过程 事情 总结,你能找到自己 吗?以前有空的地方,还有进一步的地方。...