SQL注入进阶

SQL注入进阶
1)时间注入攻击:时间注入利用sleep()或者benchmark()等函数让MYSQL的执行时间变长。时间盲注多余IF(expr1,expr2,expr3)结合使用,此if语句的含义是:如果expr1是TRUE,则if的返回值为expr2;否则返回的值为expr3 。所以判断数据库名长度的的语句应为:
if (length(database())>1,sleep(5),1)
可以通过时间的不同来确定是否存在注入点。
2)堆叠查询注入攻击:堆叠查询可以执行多条语句,多语句之间以分号隔开、堆叠查询注入就是利用这个特点,在第二个SQL语句中构造自己要执行的语句。
3)二次注入攻击:通过注册等页面插入语句,通过另外的页面进行语句的调用,实现SQL注入。
4)宽字节注入攻击:当数据的编码为GBK时,可以使用宽字节注入,宽字节的格式是在地址后先加一个%df,在加单引号,因为反斜杠的编码为%5c ,而在GBK编码中,%df%5c是繁体字“連”,所以这时候,单引号逃逸成功,报出mysql数据库的错误。
5)cookie注入攻击:cookie中存在id=1的参数,修改cookie中的id=1 为id=1’ 然后在此访问URL,发现页面返回错误,接下来分别修改cookie中的id=1 为id=1 and 1=1 和id=1 and 1=2,再次访问判断该页面是否有存在SQL注入漏洞。
验证漏洞存在后,使用sqlmap进行注入: sqlmap -u"http://192.168.111.137/4/4.2.10/cookie.php" --cookie “id=1” --level=3
6)base64注入攻击:通过访问的URL可以看出参数经过base64编码,将参数进行解码后发现为id,尝试加上一个单引号并且一起进行base64编码,当访问页面时发生报错,然后将1 and 1=1 和 1 and 1=2 进行base64编码,再次访问页面进行判断页面是否存在SQL注入漏洞。
7)XFF(x-forwarded-for)注入攻击:X-Forwarded-for简称为XFF头,它代表客户端真实的IP,通过修改XFF的值可以伪造客户端IP,在XFF地址内容后加单引号,再次访问该URL,页面返回SQL的报错,将XFF分别设置为ip’ and 1=1 # 和ip’ and 1=2#进行页面访问,判断页面是否存在SQL注入漏洞。

SQL注入绕过技术:
1)大小写绕过注入:通过修改SQL语句字符的大小写进行绕过。
2)双写绕过注入:加入and 字符被过滤,那么在写入sql字符时通过写入anandd 进行绕过。
3)编码绕过注入:由于服务器会自动对URL进行一次URL解码,所以需要把关键词进行两次编码,URL编码需要选择全编码而不是普通的URL编码。
4)内联注释绕过注入:内联注释的形式:/*! code /,内联注释可以用于整个SQL语句 。当访问id=1 /!and */ 1=1的时候,页面返回与id=1相同的结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值