Lazy loaded image
技术分享
学习日记-1(命令执行篇)
00 分钟
2025-1-10
2025-2-23
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抓包
notion image
[@-[]表示大写字母,只有上传的文件最后才可能为大写字母
notion image
#|/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位置
notion image
notion image
添加密码本,添加规则:1.前缀:admin: 2.进行base64编码 攻击即可得到正确密码。输入得到flag

web23

分析代码,上传的值的MD5要求满足
ai写脚本爆破
 
利用环境路径等构造payload
PATH:/bin
${USER}:www-data
HOME:/
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}完全随机)
$?表示上一条命令执行结束后的传回值,成功:0,失败:1 例如:使用<A等可让其返回1,<A;${HOME::$?}等价于/

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
 
上一篇
php总结
下一篇
学习日记-2(SQL注入篇)

评论
Loading...