SQL注入实战思路(补充)

目录

理解WAF的拦截原理

1.WAF绕过

过滤替代

2. 绕过WAF的策略

2.1 修改请求头

2.2 使用编码技术

2.3 分段注入

2.4 使用特殊字符

2.5 逻辑漏洞绕过

2.6 大小写和同义词替换

2.7 模糊测试

3. 防御策略

sqlmap的使用(get和post使用方法不一样)

扫描用法


红队:前期资产较多,一般使用漏扫工具,后期才会针对性进行手工注入

蓝队:看请求头和响应包,返回字段长度,相应数字

理解WAF的拦截原理

WAF主要通过匹配规则库中的敏感字符进行拦截。因此,绕过WAF的关键在于让输入的数据不被WAF识别为恶意字符。

1.WAF绕过

等于号        substr,mid等        逗号q        and / or

过滤替代
原字符替代字符
a'a'a'a'e'aaaaaaea
<>like  'x%'  rlike  '/n'
inbentween  't'  and  't'
,(逗号)%EF%BC%8C

 

2. 绕过WAF的策略

2.1 修改请求头
  • 攻击者:可以通过修改HTTP请求的头部信息,如User-Agent、Referer、Cookie等字段,以模拟正常浏览器行为,隐藏恶意SQL注入代码。
2.2 使用编码技术
  • URL编码:如SELECT * FROM users WHERE username = '%61%64%6D%69%6E',其中%61%64%6D%69%6E是“admin”的URL编码形式。
  • Base64编码:利用Base64编码技术对SQL注入代码进行编码处理,以逃避WAF的检测。
2.3 分段注入
  • 攻击者:可以将恶意SQL语句分成多段,并通过不同的请求发送给服务器,使WAF无法完整地识别恶意代码。
2.4 使用特殊字符
  • Unicode编码:使用Unicode编码或其他特殊字符来混淆WAF的识别逻辑。
  • 注释符:使用SQL注释符号(如--/**/#)来隐藏恶意SQL代码。
2.5 逻辑漏洞绕过
  • 利用应用程序或数据库的逻辑漏洞:如使用盲注技术成功绕过WAF的检测。
2.6 大小写和同义词替换
  • 关键字大小写:如将“SELECT”替换为“SeLeCt”。
  • 同义词替换:如将“AND”替换为“&&”,将“=”替换为“<、>”等。
2.7 模糊测试
  • 反复尝试:使用模糊测试技术,反复尝试各种恶意SQL注入的方式,以找到可以成功绕过WAF的方法。

3. 防御策略

  • 更新WAF规则库:及时更新WAF的规则数据库,以覆盖新的攻击手法。
  • 加强输入验证:对用户输入进行严格的过滤和验证,减少SQL注入漏洞的发生。
  • 使用参数化查询:避免直接将用户输入拼接到SQL语句中,使用参数化查询来确保输入的安全性。
  • 监控和日志记录:监控可疑的数据库活动,并记录详细的日志,以便及时发现和响应潜在的SQL注入攻击。

sqlmap的使用(get和post使用方法不一样)

扫描用法

        1、-u指定目标url


        2、-m url_list.txt          #使用一个包含多个ul的文件进行扫描。


        3、-r request.txt          #Post提交方式,使用HTTP请求文件,该文件可从BurpSuit中导
出。(BurpSuit抓包->将请求复制到txt中即可)


        4、-p "username,id"    #指定要扫描的参数


        5、--proxy="http://127.0.0.1:8080/"        #使用代理去扫描目标


        6、--force-ssl               #使用HTTPS连接进行扫描


        7、--delay="3"              #每次http请求之间的延迟时间,默认无延迟


        8、--timeout="10"        #请求超时时间,浮点数,默认为30秒


        9、--level  2/3/5
                2:检测cookie中是否含有注入
                3:检测user-agent、referer是否含有注入
                5:检测host是否含有注入


        10、--risk默认1,最高4,等级高容易造成数据被篡改风险


        11、--threads:=7        #提高并发线程,默认为1,建议不要超过10,否则影响站点可用性

             

         12、--dbms="Mysql"        #指定数据库类型,还可以加上版本Mysql


        13、--os="Windows'"#指定操作系统,还可以是Linux


查询语法


1.--users        #查询所有的数据库账号
2.--dbs           #查询所有数据库
3.--schema    #查询源数据库(包含定义数据的数据)
4.-a                #查询当前user、当前数据库、主机名、当前user是否是最大权限管理员、数据库账号等
5.-D dvwa      #指定数据库
6.--current-user         #查询当前数据库用户
7.--current -db            #查询当前数据库
8.--hostname            #查看服务器的主机名
9.--columns         #查看所有的字段
10.--tables          #查看所有的表

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值