【攻防世界AD】Web 新手练习区

1. view_source

 直接f12查看网页源代码。

2. robots

 网站的robots协议通常放在主页下的./robots.txt里,里面是一些可被搜索引擎或爬虫访问以及不可访问的目录。打开后里面有一个f1ag_1s_h3re.php文件,原地址栏加上

/f1ag_1s_h3re.php

 访问这个网页,就能看到flag。

3. backup

 网页的备份文件一般是以网页名.bak命名的,由于页面要求index.php的备份文件,所以在地址栏后加上

/index.php.bak

 访问即可,下载下来一个txt,打开发现flag。

4. cookie

 直接f12查看cookie,发现name栏有个look_here,值为cookie.php,加入地址栏

/cookie.php

 访问之,根据页面提示查看response,flag就在其中。

5. disabled_button

 修改前端代码,去掉input标签里的disabled属性,点击按钮即可获取flag。

6. weak_auth

 这就是所谓弱口令了,直接通过burp用弱口令字典爆破。

7. simple_php

 分析页面php代码,查阅相关资料可知,php的变量赋值都是通过字符串进行进行的,当一个纯字符串和数字比较的时候,会作为0来比较,而作为bool类型的时候,则会当作true,所以要是第一个if成立,只需要a=‘abc’(abc为任意纯字符串)。
 而is_numeric()函数则是判定变量值是否是纯数字,而字符串和数字比较的时候会取字符串里的数字来判断,所以为了跳过第二个if,还要使第三个if成立,需要让b=‘1235abc’(1235为任意大于1234的数字,abc为任意字符或字符串),所以在地址栏后加上

/?a=abc&&b=1235abc

 即可获取flag。(参考:ctf-web-攻防世界基础题simple_php

8. get_post

 先提交一个get请求,即在地址栏后加上

/?a=1

 页面提示再提交一个post请求,用hackbar插件,使post可用,然后url栏加上地址,body栏加上b=2,然后execute就行了。

9. xff_referer

 页面提示了ip地址为123.123.123.123,然后用burp抓包放到repeater里然后构造xff,即

X-Forwarded-For: 123.123.123.123

 然后send,发现返回里有一个新的script,提示来源https://www.google.com,再次构造referer,即

Referer: https://www.google.com

 再次send就能获取flag了。
 (这里有个问题,当你直接复制整个地址到referer里的时候,返回可能出现错误,但如果把复制的//改为人工输入,就能成功了,这点我也没弄清楚…)

10. webshell

 一句话木马,打开网址环境发现shell,用连接软件(比如中国菜刀,蚁剑啥的,我这里用的蚁剑),配置好环境后,直接右键添加数据,url填地址栏的,连接密码就是页面提示的shell,添加成功后连接服务器就能看到flag.txt了。
 (配置蚁剑环境的时候碰到一个问题,下载好源码后显示代码解压出错:[object Object],其实这时代码的压缩包已经在目录下了,只要自己手动解压就好了)

11. command_execution

 这里先提一下windows下的相关命令

command1 & command2 :不管command1执行成功与否,都会执行command2(将上一个命令的输出作为下一个命令的输入),也就是command1和command2都执行
command1 && command2 :先执行command1执行成功后才会执行command2,若command1执行失败,则不执行command2
command1 | command2 :只执行command2
command1 || command2 :command1执行失败,再执行command2(若command1执行成功,就不再执行command2)

 尝试PING:

127.0.0.1 | ls /

 用以查询目录,发现有个home目录,然后尝试

127.0.0.1 | ls /home/

 可以发现flag.txt,于是用

127.0.0.1 cat /home/flag.txt

 即可获取flag。
 (参考:XCTF_Web_新手练习区:command_execution

12. simple_js

 打开网页需要输入密码,但无论怎么输显示FAUX PASSWORD HAHA,查看一下源码,发现问题出在script里,分析后发现按照当前的代码,的确怎么会显示上面的结果,往下发现一串

String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));

 flag应该就是这个了,可以通过js的String.fromCharCode()方法修改代码输出,也可以通过python打印

#!/usr/bin/env python

def flag():
    str = "\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30".split(',')

    flag = ""
    for i in str:
        flag += chr(int(i))
    
    print(flag)

flag()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值