ctf PHP一句话木马,网络内生安全试验场——CTF答题夺旗赛(第三季)Web详细Writeup...

CTF夺旗赛第三季WEB题目Writeup

这次比赛的Web题目都比较基础,总共有五道,考察的知识点也都比较明显,所以借这次的题目来简单介绍一下几种漏洞的简单利用方法,下面的解题过程有的地方会写的比较细,主要是写给我们萌新看的,大佬们轻喷。

weak

题目难度 ⭐

php中有两种比较的符号 == 与 === ,=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较== 在进行比较的时候,会先将字符串类型转化成相同,再比较, 如果遇到了 0e\d+ 这种字符串,就会将这种字符串解析为科学计数法。"0e132456789"=="0e7124511451155"  中 2 个数的值都是 0 因而就相等了。如果不满足 0e\d+ 这种模式就不会相等。

打开网址看到了右上角明显的管理平台,点进去之后是一个用户管理平台,有一个明显的跳转到测试页链接,点进去看到了下面这些代码,感觉这就是题目的关键点了。

highlight_file(__FILE__);

if (isset($_POST['username']) && isset($_POST['password'])) {

$logined = false;

$username = $_POST['username'];

$password = $_POST['password'];

if (!ctype_alpha($username)) {              #1

$logined = false;

}

if (!is_numeric($password)) {               #2

$logined = false;

}

if (md5($username) == md5($password) && $username != $password) {           #3

$logined = true;

}

if ($logined) {

echo "login succeed! and flag is flag{xxxxxxxxxxxx}";

} else {

echo "login failed!";

}

}

?>

首先是判断是否通过POST传入username和password两个数据࿰

你可能感兴趣的:(ctf,PHP一句话木马)