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

不要在一棵树上吊死嘛~~

posted @ 2023-10-09 12:13  Eddie_Murphy  阅读(112)  评论(0编辑  收藏  举报