0x00 WEB
PHP execise -web150
这是一道分值150的web题,打开题目链接之后,看到题目界面
可以看到有一处输入的地方可以输入PHP语句
尝试执行以下phpinfo(),这里解释下,phpinfo是一个运行指令,目的为显示php服务器的配置信息。
phpinfo()输出 PHP 当前状态的大量信息,包含了 PHP 编译选项、启用的扩展、PHP 版本、服务器信息和环境变量(如果编译为一个模块的话)、PHP环境变量、操作系统版本信息、path 变量、配置选项的本地值和主值、HTTP 头和PHP授权信息(License)。
然后发现禁用了以下的函数
接着可以输入一下代码
foreach (glob("./*") as $filename) { echo $filename."<br>"; }
来获取当前目录
再用highlight_file()函数读取flag文件
附上highlight_file()用法
wanna to see your hat? -web250
这是一道分值250的web题
打开题目链接之后???
肿么肥事,给我一堆帽子??还好不是绿色的
点击下面的链接之后
发现一个输入框输入名字,当然随便输入了点东西,之后…………
???!!!
他还真的绿了……
暂时没发现什么特别的
查看了一下register的界面
假设,这道题存在sql注入的漏洞。当然这还不是最后的结论,当我在一通操作之后,发现还是没有突破。
那就要考虑下自己的方向是不是错了,然后考虑一下尝试别的常见的题型,比如源码泄露,这里利用自己搜集的字典,用一些扫描工具扫一下,果然,发现了源码泄露
svn恢复工具: https://github.com/kost/dvcs-ripper
使用方法
可以看到已经恢复完了
这里利用一个工具进行代码审计——Seay源代码审计系统
打开之后,首先寻找我们最关心的flag值,在index.php里看到了它的身影,嗯,已经很接近了,再来看看它需要什么条件。
if(isset($_SESSION['hat'])){
if($_SESSION['hat']=='green'){
output("<img src='green-hat-1.jpg'>",10);
}else{
output("<img src='black-fedora.jpg'>",1);
echo $flag;
}
这里需要一个session值不为green且不为空则输出flag
然后我们继续寻找在哪里进行session的设置
嗯,有了重大突破
if (isset($_POST["name"])){
$name = str_replace("'", "", trim(waf($_POST["name"])));
if (strlen($name) > 11){
echo("<script>alert('name too long')</script>");
}