0X01,被黑掉的网站
目录
打开题目链接,得到下面的页面
得不到什么信息,尝试dirsearch扫描一下
扫出了两个页面网址,先查看第一个
得到了一个字典,将字典保存下来
接着查看第二个,是一个登录界面,看样子字典对应的就是这个的密码了
bp爆破一下
发现当密码为nikel时,长度最长,尝试输入
得到了flag
0X02,robots
打开题目链接
根据“机器人”想到robots,接着访问robots.txt
得到了一个php网址,进行查看
得到了flag
0X03,签到题
提交按钮是灰色的,F12查看源代码,发现提交那里有一个disable函数,将它删除,然后就会发现提交按钮变正常了
随便输入一个数值,出现下面的页面
接着传入指定数值
传入之后,发现不行,又发现文本框内对长度有限制,修改长度即可得到flag
0X04,Don't touch me
打开之后就这一个内容
直接F12查看源代码
发现了一个2.php,访问一下,得到下面的页面
点击click me后,直接出现end,接着查看源代码,发现在click me这里存在着disable函数,将其删除,再次点击
点击之后也是出现了end字样,但是在源代码里发现了一个被注释掉的fla.php,访问一下
得到了flag
0X05,召唤神龙
F12查看源代码,在调试器内发现了main.js,并在里面发现了jsfuck编码
将内容复制下来,到控制器内运行,即可得到flag
0X06,cookie欺骗
提示只有admin才能得到flag,且当前为普通访客,bp抓包修改cookie值
通过抓包看到cookie值为user,修改成admin
得到了flag
0X07,upload
首先F12查看源代码
看到被注释的内容,进行访问
得到了文件上传时的源码,审计后发现对一系列有关于php的后缀进行了过滤,经过尝试后发现没有对pphphp进行过滤
php的双写绕过是从左往右来计算的,以pphphp为例,从左往右来查找php后缀,将中间的php过滤后,停止了对php后缀的过滤,然后留下来开头的p和结尾的hp,再次从新组合后成为了php,以此绕过对php的过滤
因此上传一个php文件,用bp抓包对后缀名进行修改
上传成功,蚁剑连接
连接成功,在www目录下发现了flag.php
0X08,cool
通过正则表达,发现对一些内容进行了过滤,除了system函数以外还有exec()、shell_exec()、pcntl_exec()、popen()、proc_popen()、passthru()、等,用这些函数来绕过正则
这里使用passthru()函数进行操作
发现了flag.txt,由于对flag进行了过滤,这里用*来让其自行补充
得到了flag
0X09,seek flag
根据题目当中的seek,联想到扫描,尝试用御剑扫描一下
得到了robots.txt访问一下
得到了第三段flag,bp抓包查看一下是否有隐藏内容
发现了cookie值为0,修改一下
得到了第一段flag,往上看又发现了第二段flag
拼接一下即可得到完整的flag
flag{7ac5b3ca8737a70f029dc0ad71dadd11}
0X10,iPhone
点击enter按钮后,出现下面的页面
要求我们用iPhone手机或者是平板打开才会给flag
bp抓包修改UA头为iPhone,修改后得到了flag
0X11,XFF
根据题目和网页内容联想到XFF伪造IP地址,bp抓包,然后添加XFF,即可得到flag
0X12,ezupload
上传一个php一句话木马文件,并用bp抓包
修改文件类型,发包之后,提示只能是gif图片,再次修改文件类型
上传成功,用蚁剑连接一下
连接成功,找到flag
0X13,机器人
根据题目,想到robots.txt,访问一下
访问后得到了第一段flag,并获得了一个disallow路径,用dirsearch扫一下,扫描后得到flag.php,然后得到了一半的flag
访问flag.php,得到了第二段flag
拼接之后就是完整的flag
0X14,干正则
审计之后,需要ping的源码,然后看到了@parse_str()函数。就是读取一个变量并将其转换为数组的形式
并且还要求用GET方式对a[0]传入www.polarctf.com
因此payload为?id=a[0]=www.polarctf.com
接下来进行下一步
利用与运算符,传入:&cmd=|ls ;
发现回显了flag.php,因为flag.php无法直接读取,所以用cat代直接读取
payload:?id=a[0]=www.polarctf.com&cmd=|cat ls
;
这里只回显了一段源码,F12查看是否还有剩下的源码
发现了flag
0X15,覆盖
跟上面的题类似,也是对a[0]传入一个值,然后再用cmd命令获取flag
找到了flag.php,接下来用cat 获取flag
在测试中发现对cat进行了过滤,利用tac来获取flag