攻防世界web新手训练
view_source
F12看源码

get_post
进入链接后提示如下:

构造url

提交后提示如下:

再次构造url

提交得到flag

robots
进入链接后什么都没有
看看robots.txt

可以看到disallow的位置就是我们要找的flag

backup

看到index.php,我们看看

发现没有什么变化,那么根据提示,我们看看备份文件,一般备份文件的后缀是.bak

当我们输入index.php.bak时可以下载该文件,下载后打开,得到flag

cookie

抓包看看

那我们就看看cookie.php

提示我们看看响应包,得到flag

disabled_button

看看这个按钮

可以看到这个按钮的作用实际上就是post传递一个auth=flag,那么我们自己传这样一个参数,得到flag

weak_auth
进入后是一个登陆界面,随便输一个用户名密码

说明用户是admin

可以看到这个题就是暴力破解,那么放到burp suite里跑个字典

可以看到密码就是123456

得到flag
simple_php

看php代码说明我们要构造a和b,让a和b的值都满足条件,就可以获得flag
那么首先看a,要a=0为真,a为真,所以a不可能等于0,要想解决这个问题,首先我们要知道php的特性。
由于php为弱类型语言,因此当不同类型的值进行==比较的时候会发生类型转换。正常情况下不同类型的值是不能比较的,php 为了比较进行了数据类型转换。把不同类型的值转换为相同类型后再比较。
具体转换规则可以看这篇文章《彻底解决php判断a==0为真引发的问题-类型转换》,这里不再赘述。
知道了转换规则,那么我们就可以构造了,得到flag

xff_referer
进入后提示如下:
那么我们就在请求包中通过x-forwarded-for伪造ip

注意xff加入的位置,我之前加入到末尾发现页面一直在加载没有响应,我想xff写在请求头中间就好了。
然后发现提示变化:

那么在伪造referer

得到flag

webshell

php的一句话木马,使用中国菜刀连接,中国菜刀可以从这个地方下载,

即可进入服务器

获得flag

当然,如果没有工具,那就手动构造请求post包
一句话木马中的变量是shell,所以我们传的变量就是shell

可以看到返回了当前路径的所有文件,看到了flag.txt

得到flag
command_execution

尝试ping一下本机127.0.0.1

可以看到ping的结果返回到了页面,那么尝试命令注入
命令注入有很多种方法,可以参考这两篇文章:文章1,文章2,这里不再赘述
这道题比较简单,没有waf,不需要绕过,我使用 | 进行注入
command 1 | command 2 只执行command2

可以看到执行了ls命令,现在找flag

得到flag

simple_js

随便输一个

看看源码,调试一下js

发现不论输入的密码是什么,最后都会跳到假密码FAUX PASSWORD HAHA
而真密码是初始的pass_enc

那么就把pass的值改为pass_enc,执行一下,注意14行的tab2下标要改成10,因为默认的pass长度为18,而修改后的pass长度为11,所以要修改,否则最后执行的时候p加入的就不是pass的最后一个值了(这个地方坑了我好久)

把获取到的字符串加上题目要求的flag格式即可得到flag