Bugku——WEB篇(持续更新ing)
目录
一、滑稽
二、计算器
方法一
方法二
三、alert
四、你必须让他停下
五、头等舱
六、GET
七、POST
方法一
方法二
八、source
九、矛盾
十、备份是个好习惯
一、滑稽
1.启动环境后,访问URL,页面出现了一堆滑稽表情
2.按f12(或fn+f12)打开开发者工具查看网页源码,发现flag
二、计算器
启动环境后访问URL,出现了一个简单的数学计算题,输入答案时发现只能最多只能输入1位
方法一
按f12点击输入框,将maxlength的值改为3,输入正确答案即可得到flag
方法二
直接打开调试器在代码中搜索flag
三、alert
1.启动环境后访问URL,出现一个弹窗,点击确定后弹窗不断出现
2.直接按f12在调试器中查看网页源代码,在最后一行的注释中看到可疑信息
3.猜测应该是Unicode编码,解码后发现是flag
四、你必须让他停下
1.启动环境后访问URL,页面一直在不断刷新
2.使用burpsuit持续抓包,在下图出现时查看响应包
3.发送到repeater中查看响应包,响应包中发现flag
五、头等舱
1.启动环境后访问URL,网页源码和f12均没有什么发现
2.用burpsuite抓包,发送到repeater中查看响应包,在头部FLAG字段中发现flag
六、GET
1.启动环境后访问URL,页面出现一段代码
代码审计
这段代码表示从 URL 中获取 what 参数,输出其值,并检查是否为 'flag' ,若匹配则额外输出 'flag{***}'。其中,$_GET 是 PHP 的一个超全局数组,用于获取通过 URL 查询字符串传递的参数。
2.根据代码的提示,在URL后拼接/?what=flag,页面回显flag
七、POST
启动环境后访问URL,页面出现一段代码
代码审计
这段代码表示从 POST 请求获取 what 参数,输出其值,并检查是否为 'flag',若匹配则输出 'flag{***}'。其中,$_POST 是 PHP 的超全局数组,用于获取通过 HTTP POST 方法提交的数据(通常来自表单提交)。
方法一
使用火狐插件HackBar,选中Post data输入数据what=flag,页面回显flag
方法二
1.使用burpsuite抓包
2.发送到repeater中更改提交方式并插入内容what=flag,响应包中显示flag
八、source
1.启动环境后访问URL,页面没有什么信息
2.f12发现了一个flag,但是是假的flag
3.打开kali虚拟机,扫描网站目录
dirsearch -u http://117.72.52.127:14333/ -x 403
4.发现了一个flag.txt文件,也是假的
5.有许多git目录,应该是git源码泄露,访问url/.git/
git源码泄露是什么?
git 源码泄露指的是通过git版本控制系统的某些操作或配置不当,导致存储库中的敏感信息(如源代码、配置文件、密钥等)被意外暴露给未经授权的访问者。.git/config 可能包含远程仓库 URL,.git/HEAD 指向当前分支,.git/objects 存储所有提交和文件内容。
与git相关的命令
git log:查看历史记录
git filter-branch 或 BFG Repo-Cleaner :删除敏感数据
git reflog:记录 HEAD 和分支的操作历史,用于恢复丢失提交或查看操作记录
git show:显示指定提交Git对象详细信息
6.使用wget将git源码下载下来,文件会存储到以url命名的文件夹中
wget -r http://117.72.52.127:14333/
7.进入/.git目录下,查看下载文件,发现有三个文件和flag相关
8.依次查看三个文件,即可找到flag
九、矛盾
1.启动环境后访问URL,页面显示一段代码
代码审计
这段代码表示从 URL 获取 num 参数,检查其是否为数值,输出该值,并检查是否等于 1,若等于则输出 'flag{********}'。is_numeric() 函数检查输入是否为数字类型,如果不是数字(例如字符串、数组等),则进入条件块。
PHP 的 == 比较会尝试将两侧值转换为相同类型后再比较,对于字符串和数字的比较,PHP 会将字符串转换为数字,如果字符串开头是有效的数字部分,则取该部分作为数值,否则转换为0。例如:
"1abc" == 1 为 true,因为 "1abc" 被转换为 1
"abc" == 1 为 false,因为 "abc" 被转换为 0
"1" == 1 为 true,因为 "1" 被转换为 1
2.在URL后拼接/?num=1aaa,页面回显num值与 flag
十、备份是个好习惯
1.启动环境后访问URL
2.打开kali虚拟机,扫描网站目录
dirsearch -u http://117.72.52.127:17267/ -x 403
3.访问并下载index.php.bak文件,应该是一个index.php的备份文件
代码审计
这段 PHP 代码的作用是从 URL 的查询字符串中提取参数,尝试解析为 $key1 和 $key2,计算它们的 MD5 哈希值,并通过检查哈希值相等但值不同的条件来输出存储在 flag.php 中的 $flag 变量拼接 "取得flag",然而由于 str_replace("key", "", $str) 删除了 "key" 前缀,需输入特定 MD5 碰撞对才能满足条件并获取 flag。
4.找到并拼接两个值不同但哈希值相同的字符串,页面回显flag
/?kkeyey1=MMHUWUV&kkeyey2=MAUXXQC
声明
1.本博客文章均为博主日常学习原创内容,转载请注明出处。
2.文章内容如有涉及侵犯您的知识产权和版权问题,请及时与我联系。
3.希望以上的学习经验分享能对您有所帮助。
4.本内容仅供学习和研究使用,严禁用于任何非法或不道德的行为,任何违反法律的行为将由行为人自行承担。