[RoarCTF 2019]Easy Calc1
访问地址,尝试会不会存在sql注入
看情况不是,真是想多了hhh。。。
尝试是否存在xss漏洞
查看源代码,发现calc.php
content
的含义
-
$("#content")
是一个jQuery选择器,表示选择页面中id="content"
的HTML元素。 -
.val()
方法用于获取该元素的值(用户输入的内容)。 -
content
:页面中用户输入计算表达式的文本框的ID,通过$("#content").val()
获取其值。
访问calc.php
发现有些符号被过滤,且get传入num才是我们要的目标
构造payload,num输入什么,页面就显示什么
不管是查看源代码还是啥都没给我们任何flag的提示,所以想试试system ls /,魔怔了😂
结果403
改成? num=system('ls'),虽然不是403错误,但应该是被过滤了
看网上解释“在num前加个空格可以绕过waf并且php会把它当成正常的num
使用,此时并不是’ num’而是‘num’。”,采用scandir()
scandir():列出 参数目录 中的文件和目录
首先要先扫根目录下的所有文件,chr(47)
是/
的ASCII编码,因为/
被过滤了,所以我们用chr(47)
绕过
在PHP中,file_get_contents() 函数是一个强大的工具,它既可以用于读取本地文件的内容,也可以用于发起 HTTP 请求获取远程资源,/的编码chr(47),1的编码chr(49),a的编码chr(97),g的编码chr(103),
php中,它们之间用.
连接。输入
? num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))