攻防世界-Web-NaNNaNNaNNaN-Batman

0x01

打开附件看到的是HTML代码(一开始我错误地以为是JS),有一些夹杂的乱码,先试着放在浏览器里运行一下看有没有结果。将文件后缀改成html,然后从浏览器打开,页面中显示了一个输入框。
在这里插入图片描述

0x02

回头来分析一下源码,隐约可以看到有标签,还有一个_的JS变量,最后通过eval来运行了字符串里面的内容。虽然有些地方人看不懂,但不代表浏览器不能解析,所以试着通过浏览器来显示JS源码。
把末尾的eval(_)改成console.log(_),然后再次从浏览器中打开这个页面,发现在控制台里显示了JS代码:
在这里插入图片描述

function $(){
	var e=document.getElementById("c").value;
	if(e.length==16)if(e.match(/^be0f23/)!=null)
		if(e.match(/233ac/)!=null)
			if(e.match(/e98aa$/)!=null)
				if(e.match(/c7be9/)!=null){
					var t=["fl","s_a","i","e}"];
					var n=["a","_h0l","n"];
					var r=["g{","e","_0"];
					var i=["it'","_","n"];
					var s=[t,n,r,i];
					for(var o=0;o<13;++o){
						document.write(s[o%4][0]);
						s[o%4].splice(0,1)
					}
				}
}
document.write('<input id="c"><button οnclick=$()>Ok</button>');
delete _

下面就有两种方式了,可以逐个满足if的正则,这个构造也不麻烦,构造完成以后输入:be0f233ac7be98aa,点击OK就可获得FLAG

或者,直接把最后一个if里面的内容拿到浏览器中去执行一下,也会获得FLAG。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值