贵州省第二届大学生网络安全大赛决赛wp——awd
今年的决赛没有采用Dawd的模式,只采用了awd模式。比的就是一个手速和代码审计能力,这对于我来说就很友好。
吐槽
上了一个检查的日志的脚本php的代码的:
<?php
error_reporting(0);
define('LOG_FILENAME', 'log.txt');
if (!function_exists('waf_c3ting')) {
function waf_c3ting() {
if (!function_exists('getallheaders')) {
function getallheaders() {
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5))))) ] = $value;
}
return $headers;
}
}
$get = $_GET;
$post = $_POST;
$cookie = $_COOKIE;
$header = getallheaders();
$files = $_FILES;
$ip = $_SERVER["REMOTE_ADDR"];
$method = $_SERVER['REQUEST_METHOD'];
$filepath = $_SERVER["SCRIPT_NAME"];
//rewirte shell which uploaded by others, you can do more
foreach ($_FILES as $key => $value) {
$files[$key]['content'] = file_get_contents($_FILES[$key]['tmp_name']);
file_put_contents($_FILES[$key]['tmp_name'], "virink");
}
unset($header['Accept']); //fix a bug
$input = array(
"Get" => $get,
"Post" => $post,
"Cookie" => $cookie,
"File" => $files,
"Header" => $header
);
//deal with
$pattern = "select|insert|update|delete|and|or|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|dumpfile|sub|hex";
$pattern.= "|file_put_contents|fwrite|curl|system|eval|assert";
$pattern.= "|passthru|exec|system|chroot|scandir|chgrp|chown|shell_exec|proc_open|proc_get_status|popen|ini_alter|ini_restore";
$pattern.= "|`|dl|openlog|syslog|readlink|symlink|popepassthru|stream_socket_server|assert|pcntl_exec";
$vpattern = explode("|", $pattern);
$bool = false;
foreach ($input as $k => $v) {
foreach ($vpattern as $value) {
foreach ($v as $kk => $vv) {
if (preg_match("/$value/i", $vv)) {
$bool = true;
logging($input);
break;
}
}
if ($bool) break;
}
if ($bool) break;
}
}
}
if (!function_exists('logging')) {
function logging($var) {
date_default_timezone_set("Asia/Shanghai");//修正时间为中国准确时间
$time=date("Y-m-d H:i:s");//将时间赋值给变量$time
file_put_contents(LOG_FILENAME, "\r\n\r\n\r\n" . $time . "\r\n" . print_r($var, true) , FILE_APPEND);
// die() or unset($_GET) or unset($_POST) or unset($_COOKIE);
}
}
waf_c3ting();
?>
然后第二轮之后主办方给我们说 我们上通防,扣分 被扣了100分,咱也不知道哇。没有限制就做记录攻击日志功能。但是做了就是做了, 就算球了。。。。。
在第一轮,使用了脚本获取到了大部分队的flag但是没有提交成功,flag不是每轮刷新的是定时的,时间很短就导致写的获取的脚本没有用,只能脚本+手动配合。
pwn 不会。。。。
web-1
使用Beescms_v4.0
环境地址:程序下载_BEESCMS_小程序源码_企业网站程序!
比赛时审计出来2个洞。 d盾 0洞 Seay源代码审计系统 0洞 人工审计 2洞(后台文件上传、登录有sql注入)
(并不是说工具不行,而是需要进行黑盒测试和白盒测试,后面web-3就很行)
后台文件上传: 修改Content-Type白名单为 image/jpeg或image/png 即可上传马子 然后在上传页面的文件列表里面找到我们上传马子名称,访问 地址+/upload/img/马子名称+.php 即可
登录有sql注入:
先验证用户名再验证密码
web-2
使用QCMS 3.0
比赛时审计出来2个洞。 d盾 0洞 Seay源代码审计系统 1洞(后门) 人工审计 1洞(后台文件上传)
(并不是说工具不行,而是需要进行黑盒测试和白盒测试,后面web-3就很行)
后门利用: 后门地址Config/Controllers.php里面,有路由,分析代码发现只要访问后台的系统设置界面即可访问这个Controllers控制器, 地址+/backend/system.html?b1=system&b2=ls;即可利用成功
文件上传: 后台系统设置logo可以上传木马 访问网站的静态文件地址即可获取路径 网站+Static/
web-3
这个是我们队拿分的关键,我们长期控制了超过队伍一半以上的shell
比赛时审计出来很多洞,但是时间原因没有都使用上。 d盾 n洞 人工审计 0洞
成功利用了2个: config/emmm_Language.php config/emmm_version.php
其他的很多都是需要base64解码之后才能使用,时间原因就没有使用上
总结:很好玩的一次 awd 险胜
也认识了很多佬。
非常惊喜的是:每次的贵州大学生网络安全攻防大赛的奖励都是否的足啊!!!
非常感谢赛组委会和技术支持的奖励!!!