攻防世界XCTF-web新手练习write-up
攻防世界这个ctf平台我在去年就拿到了注册邀请码,当时参加线下活动,赛宁网安的小姐姐给我的,现在可以直接注册了。但是之前一直没有在上面刷过题。因为打算这个暑假好好研究一下ctf,恰好今天有空,大概花了半个多小时的时间吧,把上面web的新手练习题做了一遍,总的来说很简单,每道题涉及的知识点也很单一。虽说简单,还是写一下自己的解题思路。
1.view_source
直接f12或者ctrl+u查看源码拿到flag,不废话。
2.get_post
就是简单的发一个post和get请求就完事了。hackbar直接干就完事了,真香。至于用burp,就大材小用了。
然后
就拿到flag了。至于看评论有兄弟说 burp抓包改为post提交为什么不可以呢?
这位朋友肯定是刚入门,我简单解释一下burp在修改发包方式时,不是直接改
注意细节
burp抓包直接把GET /?a=1 HTTP/1.1修改为POST /?a=1 HTTP/1.1,然后在body添加b=2是不会成功的;需要额外增加头部Content-Type: application/x-www-form-urlencoded,这样服务器才能识别到你用POST提交的数据。而通过burp转换请求方式,会自动加上这个头部。
3.robots
考察robots协议,很简单。引用百度对robots的介绍。
robots.txt文件是一个文本文件,使用任何一个常见的文本编辑器,比如Windows系统自带的Notepad,就可以创建和编辑它[1] 。robots.txt是一个协议,而不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
因为robots.txt在网站根目录,所以直接在url上加上robots.txt访问即可。
访问这个页面就拿到flag了。
4.backup
这个我觉得是个常识问题,直接在index.php后面加个.bak,所以url:xxx:port/index.php.bak 直接下载,再用记事本打开就好,没有难度。
5.cookie
我现在一直遵循一个原则,能用浏览器开发者工具解决的问题,就坚决不用其他工具。Chrome真好用!
这道题在开发者工具里的network里查看response headers。
很明显提示我们打开cookie.php这个页面。同样,flag就藏在了response header里面。
6.disabled_button
这个我感觉迷迷糊糊就拿到flag了,超简单….直接把input后面的disabled删掉就可以了。
7.simple_js
8.xff_referer
考察的就是xff和referer是可以伪造。照样用hackbar添加这两个头部即可。
hackbar真香。
9.weak_auth
这道题怎么说,本来想用burp跑字典的,结果随手试了个123456就拿到flag了。我……
10.webshell
这个没有任何难度,菜刀连上去即可。
11.command_execution
就是一个简单的命令执行
执行了后pwd命令获得了当前的路径。下一步就是要找到flag的位置并读取它。这里直接用find命令从根目录下查找即可,因为通常文件名都是flag.txt,但是我也不排除没有后缀名的情况,就用通配符*表示了。找到路径后直接cat就可以了。
这里总结一下linux下几个运算符的含义,&和&&,|和||区别:
& 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &
&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo ‘hello‘ && echo ‘nihao’
| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo ‘hello’ | wc -l
|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo “failed”
12.simple_php
考察的是php弱类型比较
php中有两种比较符号:
==
: 先将字符串类型转化成相同,再比较
===
: 先将字符串类型转化成相同,再比较
字符串和数字比较使用==
时,字符串会先转换为数字类型再比较 php var_dump('a' == 0);//true,这里'a'会被转换数字0 var_dump('123a' == 123);//true,这里'123a'会被转换为123
在判断语句里,要求a==0,并且a不为0;看到两个等号,因为php是弱等于,这里可以让a等于一个字符串即可,在“==”判断是,字符串会被转换成“0”,a满足条件。然后是b,is_numeric这个函数要求b不能是数字,下面要求b大于1234,这里可以让b=2345a,这样b就不会被判断为数字,且大于1234,b满足条件。
赞赏微信赞赏支付宝赞赏
发表评论