攻防世界web练习区write-up

1.view_source

        进入题目场景后提示"FLAG is not here"

 联系到题目标题"view_source",想到应当尝试查看源代码,但常规的鼠标右键无法进入,此时需  要按下F12进行查看,不同浏览器会以不同的方式展示源码,以下为chrome页面

 拿到flag:        cyberpeace{c3cd8e455e82bd6ef2a5843b25be1a16}

(此处右键flag行选择"以html格式修改可以复制)

2.robots

        根据题目名字和题目里面的相应描述很容易联想到robots协议

在URL栏键入/robots.txt查看协议,进入以下页面:

 由此我们知道了一个地址名为"flag_1s_here.php",我们在url栏中键入进行访问:

得到flag:        cyberpeace{5c6d502958f6ed9584818e040a505d0c} 

3.backup

进入题目场景后获得提示:

常见的备份文件的后缀有:        .git        .svn        .swp        .~        .bak        .bash_history

逐个进行尝试,发现后缀是.bak

 访问后下载以记事本方式打开:

找到flag:         Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}

4.cookie

根据题目提示,我们首先打开开发者工具来查看cookie:

发现一栏名称为"look here"并且其值为"cookie.php",我们在URL栏里对其进行访问:

 给出了"See the http response"提示,即查看http响应包,在此处,有两种方法可以解决问题,一是在开发者工具"网络"一栏里访问cookie.php的数据包,并在响应头里发现flag

 //取自攻防世界官方wp

之后是第二种方法,使用burpsuit进行抓包:

首先挂上代理,之后对cookie.php进行访问,在bp的proxy里将所得发送给repeater:

在repeater里进行send,得到结果:

 

得到flag:         cyberpeace{d6b8bc2a2a0be09b761176ba8193c26a}

5.disabled_button

进入场景,发现了一个如题目所说的"不能按的按钮",首先打开开发者工具:

将光标悬停在"disabled"上面右击鼠标,选择修改属性,将"disabled"删除:

 

 之后发现"flag"按钮变的可以按了,果断按下:

 得到flag:        cyberpeace{fa4872d8fe1ddfa2361f464235ea7f78}

6.weak_auth

根据题目名字和描述"随手设了一个密码",很容易联想到弱口令,在网上搜索常用弱口令,详见

常用弱口令_Amdy_amdy的博客-CSDN博客_常见弱口令

我们的目标往往是获得管理员权限,很容易知道username为admin,然后我们通过弱口令密码的逐个尝试,在尝试到"123456"时登录成功:

 得到flag:        cyberpeace{c35e7d2b759aa206d71f881f02f742b1}

7.simple_php

进入题目场景:

收先要读懂该php代码:

第一个if语句:如果a==0并且a!=0,输出flag1; 

第二个if语句:如果b为数字,退出;

第三个if语句:如果b>1234,输出flag2;

这些判断逻辑看起来很荒唐,但其实了解了php的特性之后这些都是有方法绕过的,不同于c语言,php中有两种比较"==",和"===",前者为弱类型比较,而后者为强类型比较,"=="会先将两者转化为同一类型,再做比较,而"==="会同时比较两者的值和类型,知道了这些之后,我们进行如下操作:

1.以get方式提交a='0'

访问后得到flag1

 

2.以get方式提交b=1235a

 

访问后得到falg2

 

合并后得到完整flag,也可以合并访问:

 

得到

 

由此,得到flag:        Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}

8.get_post

进入题目场景,开门见山,让我们以get方式提交一个名为a,值为1的变量

页面显示

 

POST无法通过URL栏提交,我们使用googl插件"HackBar"进行提交:

 

首先点击"LOAD"自动填写URL栏,之后"Enable POST",再"Body"栏输入"b=2",然后"EXECUTE",进入页面:

 

得到flag:        cyberpeace{bde0e96c4bf1de9a4cadf3d14dc667e0}

9.xff_referer 

通过题目名字和描述,知道本题于xff伪造和referer有关,进入题目场景,提示ip地址必须为123.123.123.123,挂上代理刷新页面,进入burpsuit,进行xff伪造:

点击forward,成功进入第二个页面,提示必须来自https://www.google.com,进入burpsuit,伪造referer:

 点击forward:

获得flag:        cyberpeace{c72740f64f32602b175d2c69149123f2} 

10.webshell

进入题目场景,发现有一串php代码:

 在php中,eval()函数的作用为将括号里的字符串当作php代码处理,联系题目名webshell,我们使用AntSword工具,add一个新shell,输入题目场景的URL,并且由题目已知密码为shell,添加后进入:

找到flag.txt文件,在其中找到flag

得到flag:         cyberpeace{ef86ce18319d552fb09d047bdf409c34}

11.command_execution

题目描述里提示,写了个ping功能但是没有写waf,此时,我们应该想到利用截断来执行新命令,可以参照CTF关于ping命令注入问题(1)_欢迎来到神林的博客-CSDN博客

在栏中随意输入一个地址,加上一个截断符,并在截断符后加上相应语句,首先用:

find / -name "flag.txt"语句寻找文件位置,如图:

PING后得到以下结果: 

 由/home/flag.txt我们就知道了目标文件的位置,接着,我们使用cat / home/flag.txt 语句获取flag

之后获得如下结果:

 

得到flag:        cyberpeace{aad85f9023e2c4964be35a99d47daba4}

12.simple_js

首先进入题目场景,要求我们输入密码:

我们先随便输入一个密码,得到如下反馈:

显然是密码错误的提醒,之后我们右键查看源码:

 

为了代码的易读性,我们对该代码进行一定的整理,这里参考史上最详细系列--攻防世界web(新手7-12)_青衫_渗透新手的博客-CSDN博客 的整理:

首先是对函数的定义,暂且先不管,等到调用时再回过头来看,直接看主函数,主函数中第一句就对所定义的dechiffre函数进行了调用,并以一串16进制数字符串作为了形参,我们对dechiffre函数进行审计:

1.首先将传入的形参进行转化:

结果为:

 

同时,在函数中定义了一个字符串pass:

 我们对这两传数字进行ascii码转化,结果分别为:

 这时我们发现,pass的字符串定义的就是我们输入密码后反馈给我们的文字!到这一步,我们完全可以假设另一段就是本题的flag,我们将这段字符包上Cyberpeace{},提交flag,也的确是正确的,但若是为了练习,可尝试将代码看懂,如图:

得到flag:        Cyberpeace{786OsErtk12} 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值