0xGame week1-WEB wp
signin
打开是个js框架,找了源码半天啥也没有。
差点卡住了,我竟然签到都做不出来??
点开F12,往下翻找到个main,点开有flag,虚惊一场~~~
baby_php
打开是源码:
老文件包含了。
开始我本地测的时候,本来以为姿势对了,结果梭不出来。
看看我本地整的:
一个个排查,只有is_numeric()和intval()这里可能出问题。
搜了下原始函数,is_numeric()如果包含一些乱七八糟的字符,比如空格(%20),回车(%0a),空(%00),字母之类的就会返回False了。
intval()在类型转换时取整,加个小数点就行,并且intval()也会截断非数字部分。
然后转一下就得到flag了:
hello_http
老生常谈了,没啥好说的,跟着它思路走一个个改就完了。
repo_leak
打开是个git写的博客:
马上就想到了git泄露,直接拿去githack梭拿到所有源码,但是我啥也找不到???
抽象。
继续去处理git泄露的其他工具,还真有个git_extract:
https://github.com/gakki429/Git_Extract
但这个好像只有python2能用,本机没装py2,我就用虚拟机的win7做了。
这是个git恢复工具,直接开梭:
在post里找到flag:
PING
过滤RCE。
查看源码发现hint,看一下:
看了下这个正则表达式,意思就是只能填IPv4这种形式咯???
分号 ; 、斜杠 / 、空格和flag都被滤了。
怎么绕捏???
-----------------------------------------------------
分号不行,就用%0a(回车);
空格不行,就用%09或者{$IFS};
flag不能直接读,就用通配符*;
斜杠不行,就手动cd切目录:
最终payload:
ip=127.0.0.1%0acd%09..%0acd%09..%0acd%09..%0acat%09f*
第一次做能出,但是后面就不行了,没搞明白。
难道是目录位置不对?
反斜杠、问号这些常规绕过文件名的手段我也用了,一样是这个结果出不来...
搜了下其他师傅的,发现这个思路云流师傅也能出:
官方做法是用base64,看看payload:
ip=#127.0.0.1%0aecho${IFS}Y2F0IC9mbGFnCg==|base64${IFS}-d|bash
不要在一棵树上吊死嘛~~