[AHU2021校内赛] ez-injection

  • 题目首先给了一个 index.rar 文件,直接可以解压
    image
  • 第二个hint.txt文件,打开后提示
    image
  • 打开文件里面有个source.zip文件,有密码解压不了,点进去一看里面也有个hint.txt,尝试明文攻击
    image
  • 一开始先用WinRAR添加到hint.zip的,发现ARCHPR报错**“在选定的档案中没有匹配的文件”**
    image
  • 后来发现直接右键,发送到zipped文件夹就能执行明文攻击了
    image
  • 开始明文攻击
    image
  • 口令获得成功
    image
  • 打开解压后的文件夹,里面有个index.php就是我们想要的源码
<?php

  $re = array('and','or','count','select','from','union','group','by','limit','insert','where','order','alter','delete','having','max','min','avg','sum','sqrt','rand','concat','sleep');

setcookie('injection','c3FsaSBpcyBub3QgdGhlIG9ubHkgd2F5IGZvciBpbmplY3Rpb24=',time()+100000);

 

if(file_exists('slain.xml')) {

     $xml = simplexml_load_file('slain.xml');

     $user=$_GET['user'];

     $user=str_replace($re, ' ', $user);

//$user=str_replace("'", "&apos", $user);

     $query="user/username[@name='".$user."']";

     $ans = $xml->xpath($query);

     foreach($ans as $x => $x_value)

     {

        echo $x.":  " . $x_value;

         echo "<br />";

      }

 }
  • 代码中setcookie里面有一段c3FsaSBpcyBub3QgdGhlIG9ubHkgd2F5IGZvciBpbmplY3Rpb24=用burp里面的解码器解出**“sqli is not the only way for injection”**说SQL不是唯一一种注入方式
    image
  • 然后结合这两段代码发现过滤掉了很多SQL关键字

$user=str_replace($re, ' ', $user);

$re = array('and','or','count','select','from','union','group','by','limit','insert','where','order','alter','delete','having','max','min','avg','sum','sqrt','rand','concat','sleep');
  • SQL注入肯定不能用了,然后中间有一段
$xml = simplexml_load_file('slain.xml');

image

  • 查阅资料,可以用xpath注入
    image
    image
    image
  • 提交一个单引号,返回的响应证明确实有xpath注入漏洞
    image
  • 利用这行代码
$query="user/username[@name='".$user."']";

构造payload?user=']|//*|//*['
可以用这个payload访问这个xml文档里面的所有结点
image

  • flag到手
  • 写WP的时候其实还发现了个更简单的办法
$xml = simplexml_load_file('slain.xml');

这行代码说明服务器存在一个slain.xml文件,说不定能够直接访问

  • 试一下,还真行
    image
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值