记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

XCTF两道web题目的writeup

2014-10-25 20:00

    只会web正好又是php的审计题目,于是就把两道题都做了。大牛们都忙着破各种路由器,破各种设备去了,我也侥幸得了个第一:

    QQ图片20141024184200.png

    第一题,没怎么截图,查看代码如下:

    QQ图片20141025151017.jpg

    主要是考mysql的一个trick。就是查询出来的$row['id']和$id的区别。这么说可能有点不明白,我们用一下代码fuzz一下mysql:

mysql_connect("localhost","root","root");
mysql_select_db ("test");
mysql_query("set names utf8");
for($i = 0 ; $i < 256 ; $i++){
	$c = chr($i);
	$name = mysql_real_escape_string('hehe' . $c);
	$sql = "SELECT * FROM `name` WHERE `name` = '{$name}'";
	$row = mysql_fetch_array(mysql_query($sql));
	if ($row['name'] == 'hehe') {
		echo "{$c} <br/>";
	}
}
    如果在name后面加上一个字符,在mysql里查询,如果查到的和不加这个字符查出来的行相同,则输出。


    得到了如下结果:

    001.jpg

    我们随便挑一个跟在adog后面提交就能得到flag了。如下:

    002.jpg

    003.jpg


    第二题,访问pwnme.php得到如下提示:

    XCTF22.png

    很快就明白了是要说明在php里”===”和”==”的意义不同。我记得之前一个php的trick,我猜这里的代码是这样:strcmp($_POST[password], ‘xxxx’)==0。看一下php的strcmp文档就能知道:

    XCTF142.png

    所以传一个password[]=xxx即可得到如下页面:

    XCTF175.png

    访问可得到一段源码,yeah碰上我最爱的审计题了:

    XCTF205.png

    源码其实很简单,就是写入一个webshell,但文件名是跟当前秒数有关,所以大部分人想到要跑一下文件名。
当然,我这个人比较懒,能不能想个方法,不要跑这该死的文件名。
    这道题没有过滤/和../,我可以直接做跳转,将时间作为目录名,再用../跳转到上个目录,这样我的文件就不带时间前缀了。
当然还要让php不出错,试了几次,数据包如下即可:

    XCTF378.png

    这样我的shell就为:
    http://106.120.92.162:5000/backup/".eval($_REQUEST[a]).php

    XCTF453.png

    不需要跑用户名。拿到shell了就读flag即可。

知识来源: www.leavesongs.com/PENETRATION/Mini-XCTF-Writeup.html

阅读:112072 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“XCTF两道web题目的writeup”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云