CTFctfCTF

CTFlearn: Calculat3 M3

2018-07-18  本文已影响6人  SEVEN_9e53

题目来源:https://ctflearn.com/index.php?action=find_problem_details&problem_id=150

原题:

Calculat3 M3

Here! http://web.ctflearn.com/web7/ I forget how we were doing those calculations, but something tells me it was pretty insecure.

点开题目给出的链接,可以看到一个网页版的计算器,计算得到的结果会出现在页面的左上角:

查看这个页面的源码,看到这个页面调用了一个JS脚本:

点击源码中的链接查看JS脚本:

可以看到脚本中定义了三个函数,前两个是对一个变量赋值,最后一个是将这个变量的值放到eval()中执行。

eval()函数接受一个字符串作为变量, 它会将这个字符串当做JS命令来执行。所以我们可以通过改变eval()的变量来实现代码注入。

打开Burp Suite的代理,在网页中计算1+1,利用Burp Suite来截获页面的请求:

可以看到操作的参数在expression中,发送这个请求后网页会返回结果2。所以eval()应该接收了1+%2B+1+为变量并运行得到了结果。所以我们尝试编辑expression来实现代码注入。

尝试输入了:10 ; system(\"/bin/echo uh-oh\"); 

;return 1;

但是网页没有返回任何东西。这可能是为了保护网站服务器而屏蔽了一些危险的字符。尝试最基础的命令ls。输入代码 ;ls。服务器返回了当前目录下的文件:

可以看到其中一个文件名就是flag值。

上一篇下一篇

猜你喜欢

热点阅读