BUGKU WEB13 源代码

该博客文章详细解析了一道CTF(Capture The Flag)比赛中的Web题目。题目涉及HTML源代码审计,其中包含使用JavaScript加密的flag验证函数。通过unescape函数解码加密字符串,揭示了输入密码必须为'67d709b2b54aa2aa648cf6e87a7114f1'。解题过程涉及到对JavaScript代码的理解和解密技巧,最终目标是找到正确的flag值并提交。
摘要由CSDN通过智能技术生成

首先打开题目链接

题目给出了提示,看看源代码,Ctrl+u打开源代码

<html>
<title>BUGKUCTF-WEB13</title>
<body>
<div style="display:none;"></div>
<form action="index.php" method="post" >
看看源代码?<br>
<br>
<script>
var p1 = '%66%75%6e%63%74%69%6f%6e%20%63%68%65%63%6b%53%75%62%6d%69%74%28%29%7b%76%61%72%20%61%3d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%70%61%73%73%77%6f%72%64%22%29%3b%69%66%28%22%75%6e%64%65%66%69%6e%65%64%22%21%3d%74%79%70%65%6f%66%20%61%29%7b%69%66%28%22%36%37%64%37%30%39%62%32%62';
var p2 = '%61%61%36%34%38%63%66%36%65%38%37%61%37%31%31%34%66%31%22%3d%3d%61%2e%76%61%6c%75%65%29%72%65%74%75%72%6e%21%30%3b%61%6c%65%72%74%28%22%45%72%72%6f%72%22%29%3b%61%2e%66%6f%63%75%73%28%29%3b%72%65%74%75%72%6e%21%31%7d%7d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%6c%65%76%65%6c%51%75%65%73%74%22%29%2e%6f%6e%73%75%62%6d%69%74%3d%63%68%65%63%6b%53%75%62%6d%69%74%3b';
eval(unescape(p1) + unescape('%35%34%61%61%32' + p2));
</script>

<input type="input" name="flag" id="flag" /> 
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

有一个补充的函数知识点,unescape()函数:它可以对通过escape()编码的字符串进行解码(相反的说,escape()函数就是对一个字符串string进行加密的)(相当于是对url进行解码)

语法:unescape(string),其实这里相当于是一个提示,并不是让你去写一个php或者web的代码去执行,它提示你加密的p1和p2是url加密。明确思路之后,我们对其进行解密,得到:

function checkSubmit()
{var a=document.getElementById("password");
if("undefined"!=typeof a){if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)
return!0;
alert("Error");
a.focus();
return!1}
}
document.getElementById("levelQuest").onsubmit=checkSubmit;

到这里的话相当于是一个代码审计的题目,让我们看if后面限定的条件,给了a一个值,a相当于是我们输入的一个值,那就把a的值放到前面的输入框中去

flag的值会回显到输入框的下面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值