CTF/合天网安实验室-web100题解【eval与alert的利用】

原题内容:

http://www.hetianlab.com/CTFrace.html

 

web100打开可以看到只有一个很干净的zip文件下载(忍不住扫了一下目录,也bp看了一下,,没啥发现)

回到下载,解开压缩版,web100,无后缀名,个人的经验是不急着加后缀名啥的,直接用记事本直接打开

可得代码如下:

 

<script>_='function $(){e=getEleById("c").value;length==16^be0f23233ace98aa$c7be9){tfls_aie}na_h0lnrg{e_0iit\'_ns=[t,n,r,i];for(o=0;o<13;++o){	[0]);.splice(0,1)}}}	\'<input id="c">< onclick=$()>Ok</>\');delete _var ","docu.)match(/"];/)!=null=["	write(s[o%4]buttonif(e.ment';for(Y in $='	')with(_.split($[Y]))_=join(pop());eval(_)</script>

很有意思啊,很混乱的代码,但很明显头尾的script表面这肯定和script有关,既然如此,不凡用浏览器打开一试

 

预感,这是输入满足条件的数据获取flag

至于条件是啥,肯定要读懂给的web100表示的意思了

首先我想到的是在(博主用的是google浏览器)浏览器自带的开发者模式下进行调试,

思路就是卡住最后一步,加断点,然后看变量‘_’的内容

至于为啥要这样,首先粗略看出来_变量赋值了一段代码,因为eval(_),eval函数是执行代码段的函数,卡住执行代码,然后查看代码段

结果图如下:


右边watch中可见_的值,为代码,分析最终可得flag(此处不公布答案了,代码拿到其实就很简单了)

至于如何调试,详情参考我的博客谷歌浏览器调试javascript教程

 

下面讲第二种方法

获取很容易想到,既然eval是执行函数我将其换成输出函数不就可以将代码段输出了么,没错,确实可以

将eval换成alert

截图如下:

之后如同第一种办法,这里不再解释

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值