攻防世界web新手练习区
第一题 view_source
题目要求查看网页源代码
按键盘F12查看源代码,可以发现flag。
第二题 robots
题目描述关于robots协议。
先了解一下什么是robots协议。
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件。
Robots协议用来告知搜索引擎哪些页面能被抓取,哪些页面不能被抓取;
可以屏蔽一些网站中比较大的文件,如:图片,音乐,视频等,节省服务器带宽;
可以屏蔽站点的一些死链接。
先按F12查看源代码试试,显示flag is not here。
利用URL访问该网页的robots.txt文件: url/robots.txt 。 发现回显关键信息。
再访问此信息,得到flag。
第三题 backup
首先了解到backup的意思是备份,backup文件夹就是备份文件夹。
题目提示找出备份文件。
备份文件都有文件拓展名,而 php的备份有两种: .php 和 .php.bak
首先尝试加入index.php ,发现没有什么变化。
再尝试加入index.php.bak,有一个文件可下载。用记事本或者notepad++等编辑器打开文件得到flag。
第四题cookie
首先了解什么是cookie。
Cookies是一种能够让网络服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。
它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,比如自动帮你登录。 可以看作是你的身份证。
通过F12查看界面的网络选项(也可以通过burpsuite进行抓包查看),发现消息头(header)的cookie一栏提示访问cookie.php
访问cookie.php,与上面同样的方法得到flag。
第五题 disabled_button
提示一个不能按的按钮
flag按钮呈灰色,按不了。
按F12打开源代码查看器,点左边的小框框为选取页面中的元素,可以定位到这个按钮的位置。
双击编辑把default后面的disabled删除,发现flag按钮已经能按了,点击按钮得到flag。
第六题 weak_auth
打开环境是一个登录页面,先尝试随便输入username,password。提示username需要用admin。
使用admin登录密码错误后,用F12打开源代码查看器,提示使用字典,即使用字典破解密码。
打开 burpsuite,这里需要使用密码爆破,先把抓到的包发到 Intruder 界面。
在Positions(位置)选项,查看标记找到自己要爆破的密码,点击清除可以清除掉所有标记,再把所要爆破的密码进行标记。
在 Playloads 选项,此处进行设置密码字典,可以在 Add 一栏自己添加一些可能的密码字符( 也可以去网上下载密码爆破字典这个东西,点击Load进行载入),设置完之后就可以点击 Start attack 进行爆破密码了。
然后在此处的 Lenth 项找到与其他项不同的那一项,即为爆破成功的密码。
在场景使用密码登录成功获得flag。
第七题 simple_php
提示php代码。
打开场景可看到一串php代码,要能看懂这些简单的语法。我们最终的目的是输出flag1和flag2 。
第一个 if 语句说需要 a=0,但是 a 需要为真,第二个 if 语句要求 b 不为数字,第三个 if 语句要求 b 的值大于1234。
综上,可得到发送的语句为:index.php?a=“0”&b=1235a
最终得到flag。
第八题get_post
提示两种HTTP的两种请求方式。
GET和POST本质上就是TCP链接,并无差别。
get是从服务器上获取数据,post是向服务器传送数据。
进行get和post请求,我用的是火狐浏览器中的hackbar附加插件。
首先发送变量a=1的get请求。显示再post一个b的变量。
点击hackbar此选项进行post请求,最终得到flag。
第九题 xff_referer
xff(X-Forwarded-For),代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。
是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。
进入场景,显示IP必须为123.123.123.123
先用burpsuite抓包,再发送到重发器Repeater界面。
在 Repeater选项页面插入X-Forwarded-For:123.123.123.123
点击发送回显需要利用referer将https://www.google.com/添加
再加入Referer:http://www.google.com ,得到flag。
第十题 webshell
webshell
"web"的含义是 需要服务器开放web服务, "shell"的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。
以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
打开场景,显示了一句话木马。可以看出密码为shell。
一句话木马就是通过向服务端提交一句简短的代码来达到向服务器插入木马并最终获得webshell的方法。
使用中国蚁剑(AntSword),连接此URL。
点击添加,连接成功打开,即可看到flag.txt文件,打开即得到flag。
第十一题command_execution
提示ping功能。
Pingping (Packet Internet Groper)是Windows、Unix和Linux系统下的一个命令。
利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:Ping空格IIP地址。
打开场景,有一个ping的窗口,尝试本机地址127.0.0.1 ,成功回显信息。
尝试用“ && ”符号执行多个命令, 加上显示目录内容的命令“ Is ”,成功回显。
接下来查找所有以 .txt 结尾的文件。 输入127.0.0.1 &&find / -name “*.txt”
发现存在 flag.txt 这个文件, 就利用命令cat 直接查看它。输入 127.0.0.1 && cat /home/flag.txt。得到flag。
第十二题 simple_js
JS代码就是JavaScript编写的脚本文件的代码。
随便输入一个密码后,显示错误,点击F12打开源代码查看器。
可以得到一堆 JS 源代码。代码中有一串数字和一串十六进制字符。阅读代码发现无论输入什么密码,都输出这串数字"70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65",通过ASCII码转换得到 字符串: FAUX PASSWORD HAHA。即输入密码后总是显示错误。
那密码就在于这串十六进制数字
"\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 ”
转换成十进制为 “ 55,56,54,79,115,69,114,116,107,49,50 ” 。再通过ASCII码转换得到字符串
“ 786OsErtk12 ” ,所以 flag为 Cyberpeace{786OsErtk12}。
本题主要是对代码进行阅读。