1.抓包改包
打开BP抓包
改成
forward
得出flag
2 .php 后门分析
搭建一个环境如下
echo下变量类似 V5 为creat_function
同理q1为base64_decode 也就是 z0的base64解码 (这边也可以分析得出不过这样的速度最快)
flag需要执行phpinfo函数
故z0为phpinfo();的base64加密
输入
得出flag
3.easy waf
第一反这个题目应该是要通过sql注入
看了看网页的源码,以及用BP抓了下包
没有发现什么可疑的地方
于是试试能不用御剑扫下后台
通过御剑扫出后台地址
下载网站后台文件 如图
题目叫做easy waf 所以很明显是要打开 waf.php
打开后有三个过滤函数
打开过滤函数文件
暂时不知道如何绕过
观察waf.php
发现对post get cookie request 都有被过滤
仔细观察后
对get过滤有
对post有
对cookie
很明显cookie的过滤函数数量较少
继续观察过滤函数
safe_str 函数 只将数据 addslashes()
也就是只将一些特殊的符号给\掉
很有可能是题目的突破点
将这个项目载入到
自动审计
发现有两个注入点
随便选一个比如/content.php
打开sqlmap
sqlmap.py -u "xxx" --cookie "xxx" --table --level 2
然后爆出flag
4.javascript tript
如题需要 val= 0x2333233
从下往上 看
编写一个py脚本
反推上去
最后得出得出data
在linux下nc
得出flag
5
user要为the user is admin
通过php://input可以的到原始post数据数据
所以第一步这么做
user=php://input
这里提示要 include class.php
通过php://filter/read=convert.base64-encode可以得到base64后的源代码
所以
file=php://filter/read=convert.base64-encode/resource=class.php
得到源代码
<?php
class Read{//f1a9.php
public $file;
public function __toString(){
if(isset($this->file)){
echo file_get_contents($this->file);
}
return "__toString was called!";
}
}
?>
也就是要read f1a9.php
查看index的代码
$pass = unserialize($pass);
pass要反序列化输出
反序列化大概就是要构造一个read的
大概就是可以同构构造反序列使之可以读取fl1a9.php
所以payload
user=php://input&file=class.php&pass=O:4:"Read":1:{s:4:"file";s:57:"php://filter/read=convert.base64-encode/resource=f1a9.php";}
6
刚开始的时候需要找到订单下的一串神秘注释
先仔细观察代码
发现订单是通过form的post请求
按action的样子进入(我一开始忘记是post请求直接网页进入了)
会出现不要篡改数据
问了下同学,这是一个MD5 mac消息检验
大概就是要post的数据要和signature对应才能验证成功
bp上构造尝试了下它原始的signature 成功了只不过钱不够
(然后我就一直想把钱改成9999)
试了很久不成功
大概是因为这个不光要网页上数据是这样 数据库里的钱也要足够
在同学帮助下
说明有积分几万的人
所以要这个人支付....
因为这个题写了太久了 题目都忘记了一直在思维盲区 其中各种脑洞(我就不举例了)瞎搞,各种莫名奇妙的猜想.......
后面又犯了个 一直忘了在post数据前加填充 所以就各种花式失败
最后在同学帮助下
先跑出有几万积分的人
写出构造好的脚本(参考了下同学的 我自己写的之前一直不行原来是post 没写header头)
直接运行
回到订单页面flag购买成功
网友评论