CTF解题记录5(web)
获取参数:$num = $_GET['num']; 从URL查询参数中获取名为num的值。检查是否为数字:if(!is_numeric($num)) 判断$num是否不是数字(或数字字符串)。包含字母(如“1a”)则返回false。输出原值:如果$num不是数字,就执行echo $num; 输出$num本身(例如原始字符串“1a”)。宽松比较:接着执行if($num == 1),这里使用==(宽松比较),PHP会尝试将字符串转换为数字。例如字符串“1a”转换为数字1,因此条件成立。重放时给一个字符串就有flag
eval(unescape(p1) + unescape('%35%34%61%61%32' + p2));就是提示 拼接后解码。eval(unescape(...))出现在网页脚本中,常用于动态生成或执行某些 JavaScript 代码。攻击者可能利用这种模式来加载恶意载荷或绕过内容安全策略。这类技术常在 Web 攻击(如 XSS、DOM Clobbering)中被使用
