[web]cookie欺骗
考点:cookie值
工具:Burp Suite抓包
根据题目提示,cookie欺骗,所以要在cookie值寻找关键
进入网页之后,说只有admin用户才能得到flag,而我们此时只属于普通访客
我们查看cookie值,发现cookie值属于user,所以我们需要将user改为admin
用爆破工具拦截,将cookie值改为user之后点击放行
如图,便可得到本题的flag
[web]upload
考点:双写绕过
工具:Burp Suite抓包、蚁剑
点击网页,如图
先看其源码,发现有个子域,将其访问
是一串php代码
$is_upload = false;
$msg = null; //首先定义了两个变量$is_upload初始值为false,表示上传状态未成功;$msg初始值为null,用于存储可能出现的错误信息
if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");$file_name = trim($_FILES['upload_file']['name']);$file_name = str_ireplace($deny_ext,"", $file_name);$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH.'/'.rand(10000,99999).$file_name; if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}
}
解析如下:
当检测到表单通过 POST 方法提交且提交按钮名称为submit
时,进行以下操作:
- 检查指定的上传路径
UPLOAD_PATH
是否存在。如果存在,则继续执行文件上传操作;如果不存在,则将错误信息'UPLOAD_PATH 文件夹不存在,请手工创建!'
赋值给$msg
。- 定义一个数组
$deny_ext
,其中包含了一系列不允许上传的文件扩展名,如php
、html
、jsp
、asp
等,这些扩展名通常与服务器端脚本或可执行文件相关,为了安全考虑不允许上传。- 获取上传文件的原始文件名
$_FILES['upload_file']['name']
,并使用trim
函数去除文件名两端的空白字符。然后通过str_ireplace
函数将文件名中的不允许的扩展名替换为空字符串,以确保上传的文件不是危险的类型。- 获取上传文件的临时文件名
$_FILES['upload_file']['tmp_name']
,并生成一个随机数和原始文件名组成的新文件路径$img_path
,存储在指定的上传路径下。- 使用
move_uploaded_file
函数将临时文件移动到新的文件路径中。如果移动成功,将$is_upload
设置为true
,表示上传成功;如果移动失败,则将错误信息'上传出错!'
赋值给$msg。
总的来说就是将其上传的文件后缀有:
"php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess"
替换为空,所以我们要将其绕过
打开Burp Suite抓包,将文件后缀进行双写绕过
在重发器上是看到可以上传成功的,还显示了子域
所以直接在代理上放行,点击查看源代码,发现没看到缀,要是不确定,可以点开发现其就是我们所上传的一句话木马
子域有了,所以用蚁剑开始连接
找到flag.php,打开,就是本题的flag
[web]签到
考点:修改前端、html、disabled
、maxlength
打开网页,发现提交按钮无效
查看源代码,发现了disabled
disabled
属性是一个布尔属性。当存在时,它规定应禁用选项。
禁用的选项是不可用且不可点击的。
可以设置 disabled
属性以防止用户选择该选项,直到满足某些其他条件(如选择复选框等)。然后,需要一个 JavaScript 来删除 disabled 值,使该选项可选择。
所以我们需要在前端将其disabled="disabled"
删除
👇
点击提交,弹出一个小窗
输入ilovejljcxy,发现其吞掉了一些字符
再继续观察前端
maxlength
属性规定 <input> 元素中允许的最大字符数。
该题只允许我们最多输入9个字符,所以我们可以将其而我们输入的ilovejljcxy已经超了,所以我们有两种方法,一个是将范围扩大,就是将数字9改为数字11及以上 ,或者将 maxlength
=''9"给删了,上述操作完成任意一项之后输入ilovejljcxy,点击提交,弹出了含有本题flag的窗。