靶场链接:https://github.com/tanyiqu/Mimikyu/archive/refs/heads/main.zip
本人为新手,发文章只是记录学习笔记,大佬勿喷。
文中很多地方有多种解法,并不唯一。
目录
Pass01
按F12查看网页源代码就能看到flag
Pass02
访问第二题提示Homepage,就是主页的意思,看到主页文件名不太一样。
现在的文件名为:inbex.php,猜测有个index.php文件,使用dirb扫描后台目录 也扫出来有个index.php文件,但不能直接访问。
使用burp抓包 ,右键点Repeater
把b修改为d ,点Send
在右边的响应头就能看到flag
Pass03
直接在url构造一个名为1,值为1的变量,回车执行就能看到flag
Pass04
访问一片空白
直接复制链接使用dirb扫描,看到robots.txt文件
访问看到f1ag_1s_h3re.php文件
访问拿到flag
Pass05
经过一番尝试,找到了网站的备份文件名
解压压缩文件,打开index.php文件就能看到flag
Pass06
使用burp抓包,看到cookie.php
右键点击Repeater
点Send看右边的响应头就能看到flag
Pass07
按钮按不了肯定是前端的问题,众所周知前端代码都是纸老虎,如形同虚设
F12打开网页源代码,找到disabled="" 并把它删掉
就可以按了,点一次就能看到flag
Pass08
看到这就想到伪造ip地址 x-forwarded-for
使用burp抓包,依旧是把右键点Repeater
按照提示伪造IP地址 x-forwarded-for:123.123.123.123 按Send提交
提示要伪造Referer,页面来源
按Send提交,右边就可以看到flag
Pass09
查看代码可以看到,要传入两个参数且同时满足两个条件才会输出完整的flag
a是php的弱比较,若想得到flag1,则必须使得a==0且a不为。判断b等于数字或字符串就退出当前脚本,若想得到flag2,b要大于1234,又不能是纯数字,很明显,前面的数字大于1234后面添加字符串,直接构造a=a&b=12345a。就能看到flag
在php中弱比较的时候,会把字符串传化为相同,再去比较。如果涉及到数字内容的字符串就会把字符串转换为数值进行比较。字符串开始部分决定它的数值,除非字符串是以合法数值开头,否则该字符串的值就是0。如a1234的值是0,如12a34的值是12,如12345a的值是12345。
Pass10
看到这页面,想到是密码爆破,盲猜用户名admin
使用burp抓包,右键添加到lntruder,取消掉用户名的$$符号,留密码的就行了,因为只爆破密码。
暴力破解的时间太长,所以自己准备字典,这里密码是1234567 ,包含在字典里就可以进行爆破
点lntruder的start attack就进行爆破了
爆破出长度和其他密码不一样的就是正确密码
输入admin:1234567 ,在右边就能看到flag
Pass11
wenshell直接复制链接,甩出蚁剑或者菜刀
测试连通性成功
可以看到目录下有个flag.txt文件,打开便能看到flag
Pass12
查看页面猜测是ping的文件执行漏洞,ping后面跟ls命令没反应,猜测不是linux系统
ping后面使用windows系统的查看目录文件命令dir,linux系统就使用ls
查看到目录下有flag.txt文件
使用type flag.txt查看文件内容,linux系统使用cat flag.txt
执行命令就能看见lflag