[攻防世界]Web题目记录
前言
已经做了不少,但是估计都忘得差不多了,重新做一遍,用博客记录一下。
新手区
view_source
直接F12。
get_post
get一个a=1,post一个b=2。
robots
访问robots.txt文件,发现一个f1ag_1s_h3re.php,访问即可。
backup
备份文件叫index.php.bak
cookie
查看cookie,提示我们访问cookie.php,访问之后在响应头找到flag。
disabled_button
前端把按钮的disable属性去掉就可以按了。
weak auth
弱口令,admin+123456即可。
simple_php
php的弱类型比较,要求a和0弱比较相等且布尔值为真,传入一个0开头的字符串即可;要求b不是数还要大于1234,传一个开头大于1234的字符串即可,比如1235a。
xff_referer
xff伪造ip,referer伪造重定向原网站,改请求头即可。
webshell
最简单的webshell,先ls看目录,再cat读flag。
command_execution
命令拼接,管道符(|),前面命令的标准输出,后面命令标准输入。输入127.0.0.1|find / -name 'flag*',在所有目录中找匹配flag的文件,感觉第一个就是,cat这个文件即可。
simple_js
查看js源码,发现有一个十六进制字符串,解码之后得到一些数字,猜测是ascii吗,转成字符即可。
高手区
baby_web
提示我们去初始界面,也就是index.php,访问发现立刻重定向,burp抓包就好了。
ics-06
只有报表中心可以点,进来之后选时间也没什么用,url后面get一个id,爆破id,爆破到2333出现flag。(这个太难想了)
Training-WWW-robots
提示访问robots.txt,发现flag藏身处,访问即可。(这也叫高手区的题?)
PHP2
什么都没有,信息搜集访问index.phps发现源码:
然而这还没完,F12发现注释里还有一段:
看到页面源码里有urldecode函数,简单说明一下浏览器解码:浏览器在接收到url之后会先进行一次url解码,所以我们需要二次url编码来绕过。构造url:
http://111.200.241.244:57876/index.php?id=%2561%2564%256d%2569%256e
其中id后面的是admin五个字母进行二次url编码的结果(url编码是hex编码前面加个%),传入这个id之后,浏览器首先进行一次解码,得到id=%61%64%6d%69%6e,进行第一次比较,不相同,通过。之后进行第二次解码,得到id=admin,相同,通过,得到flag。
unserialize3
最简单的反序列化,序列化之后将个数1改成2绕过wakeup即可。
Web_php_unserialize
三件事:第一要绕过wakeup,第二要绕过正则匹配,第三要base64加密,都是相当经典的操作。绕过wakeup只需要把对象个数调大,这个正则是过滤O:4的,改成O:+4即可绕过,最后再base64加密,传参即可。(反序列化传参慎用Hackbar)
php rce
ThinkPHP V5.x的RCE漏洞,本题中复现了控制名未过滤导致的RCE漏洞。POC如下:
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami(此处接入命令)
whoami改成ls即可看目录,也可find和cat。
没有人可以把所有的漏洞都记下来,渗透不就是一个探索漏洞并寻找答案的过程嘛,要善于利用搜索引擎寻找poc和exp。
Web_php_include
一个文件包含,那个hello没什么用,主要是page变量,后台会不断扫描传入的值,去掉所有的php://,那我们就用data伪协议来传参,构造payload:
?page=data://text/plain,<?php eval(system("ls"));?>(?>可以不写)
成功回显,再同样方法读文件即可。