《攻防世界》Web新手题总结

这一周我一直在攻防世界上做web新手题,今天刚刚做完,特意写篇博客来做一下总结。下面就开始写我的解题过程。

先把所有题目贴出来
《攻防世界》Web新手题总结_第1张图片
Web新手题一共有12道题,分别是

view_source
get_post
robots
backup
cookie
disabled_button
simple_js
xff_referer
weak_auth
webshell
command_execution
simple_php

==============================================================
一、view_source

《攻防世界》Web新手题总结_第2张图片
查看网页源代码的方式有4种,分别是:1、鼠标右击会看到”查看源代码“,这个网页的源代码就出现在你眼前了;2、可以使用快捷Ctrl+U来查看源码;3、在地址栏前面加上view-source,如view-source:https://www.baidu.com ; 4、浏览器的设置菜单框中,找到“更多工具”,然后再找开发者工具,也可以查看网页源代码。

这道题明显考查查看源代码的方式,虽然不能通过鼠标右键的方式来查看,但是可以通过上面其他方式查看。
《攻防世界》Web新手题总结_第3张图片
这里只举通过view-source来查看,其他方式你们自己去尝试。
在地址前面加上view-source,效果如下图:
《攻防世界》Web新手题总结_第4张图片
所应就可以得到了flag,flag值为: cyberpeace{7f26e057a08a433d0147937622d87676}

二、get_post
《攻防世界》Web新手题总结_第5张图片
http的两种请求方式是get和post,比如我用通过通过这两种方式传参,分别传a=1和b=2。get的请求方式是通过在网址后面加上“?a=1&b=2”,例如:https://adworld.xctf.org.cn/task/answer?a=1&b=2
post传参的话通过hackbug,在下面的解题中,会给出方法。

《攻防世界》Web新手题总结_第6张图片
我们在网址后面加上"?a=1".例:119.198.29.45:48280?a=1。
《攻防世界》Web新手题总结_第7张图片
post方式提交的话,我们要用到hackbug,如下:
《攻防世界》Web新手题总结_第8张图片
《攻防世界》Web新手题总结_第9张图片
得到flag。flag=cyberpeace{7fbfccb395244ac5e90120197e55396c}

三、robots
《攻防世界》Web新手题总结_第10张图片
robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。

我们可以查看robots.txt文件,看看里面有什么内容
《攻防世界》Web新手题总结_第11张图片
robots里的文件不可自己爬取。但我们可以手动打开。
《攻防世界》Web新手题总结_第12张图片

四、backup
《攻防世界》Web新手题总结_第13张图片
常见的备份文件后缀名为.bak
《攻防世界》Web新手题总结_第14张图片
《攻防世界》Web新手题总结_第15张图片
打开便看到flag
《攻防世界》Web新手题总结_第16张图片
五、cookie
《攻防世界》Web新手题总结_第17张图片
Cookie是保存在客户端的纯文本文件。比如txt文件。所谓的客户端就是我们自己的本地电脑。当我们使用自己的电脑通过浏览器进行访问网页的时候,服务器就会生成一个证书并返回给我的浏览器并写入我们的本地电脑。这个证书就是cookie。一般来说cookie都是服务器端写入客户端的纯文本文件。

我们用burp来查看该网址的cookie值。
《攻防世界》Web新手题总结_第18张图片
发现有个cookite.php文件,尝试打开
《攻防世界》Web新手题总结_第19张图片
我们打开开发者工具查看http response
《攻防世界》Web新手题总结_第20张图片
六、disabled_button
《攻防世界》Web新手题总结_第21张图片
打开效果
《攻防世界》Web新手题总结_第22张图片
打开开发者工具
《攻防世界》Web新手题总结_第23张图片
disabled 属性规定应该禁用 input 元素。
被禁用的 input 元素既不可用,也不可点击。可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等)。然后,就需要通过 JavaScript 来删除 disabled 值,将 input 元素的值切换为可用。

删掉" disable="" "后便可点击按钮,点击后效果如下
《攻防世界》Web新手题总结_第24张图片

七、simple_js
《攻防世界》Web新手题总结_第25张图片
打开题目网址试试:
一来要输入密码,随便输入123。
《攻防世界》Web新手题总结_第26张图片
《攻防世界》Web新手题总结_第27张图片
查看源码
《攻防世界》Web新手题总结_第28张图片
我也不知道该如何做。接下来的做法是参考大佬的:

看到\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"想到把\x转换为%,将字符串转换为URL编码,%35%35%2c%35%36%2c%35%34%2c%37%39%2c%31%31%35%2c%36%39%2c%31%31%34%2c%31%31%36%2c%31%30%37%2c%34%39%2c%35%30
用burp 解码得:55,56,54,79,115,69,114,116,107,49,50
《攻防世界》Web新手题总结_第29张图片
将这串数字进行ASCII码转换得:786OsErtk12
根据提示flag格式为Cyberpeace{xxxxxxxxx} ,提交Cyberpeace{786OsErtk12}得到正确答案。

八、xff_referer
《攻防世界》Web新手题总结_第30张图片
xff:是X-Forwarded-For的简写,用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
referer:是告诉服务器我是从哪个地方来的

这道题跟今年强网杯web第一题基本一样,只有去增加或者修改xff和referer的值即可
用burp解题如下:
《攻防世界》Web新手题总结_第31张图片
构造X-Forwarded-For=123.123.123.123
《攻防世界》Web新手题总结_第32张图片
《攻防世界》Web新手题总结_第33张图片
构造referer:https://www.google.com
《攻防世界》Web新手题总结_第34张图片
《攻防世界》Web新手题总结_第35张图片

九、weak_auth
《攻防世界》Web新手题总结_第36张图片
此题考查弱口令,进入题目,原来是道暴力破解题
暴力破解适合题目类型:登录密码较为简单,且不会限制登录次数
《攻防世界》Web新手题总结_第37张图片
用brup爆破,根据字节长度不同,就可知道密码。brup爆破缺点就是找到密码后还在不断尝试,知道字典用完。我觉得如果会写python脚本来爆破的话,效率肯定比brup好。
《攻防世界》Web新手题总结_第38张图片

十、webshell
《攻防世界》Web新手题总结_第39张图片
《攻防世界》Web新手题总结_第40张图片
这道题明显考查后门的利用,对于这道题我们用菜刀工具。
《攻防世界》Web新手题总结_第41张图片
一连接服务器,就看到flag.txt
在这里插入图片描述
打开便可拿到flag值
在这里插入图片描述
十一、command_execution(命令执行)
《攻防世界》Web新手题总结_第42张图片

ping命令常常会存在命令注入漏洞,如我们可以用127.0.0.0.1&&ls 来测试
《攻防世界》Web新手题总结_第43张图片
《攻防世界》Web新手题总结_第44张图片
看到除了执行ping命令,而且执行ls命令
用脚本找到flag位置

import requests

url = "http://111.198.29.45:38835/"  

list = ['bin', 'boot', 'dev', 'etc', 'home', 'lib', 'lib64', 'media', 'mnt', 'opt', 'proc', 'root', 'run', 'run.sh', 'sbin', 'srv', 'sys', 'tmp', 'usr', 'var'] 

for i in list: 

    payload = {"target": "127.0.0.1 | ls ../../../%s" % i} 

    res = requests.post(url, data=payload).text 

    if "flag" in res: 

        print("current: ", i)

        break

找到flag位置在home目录下
《攻防世界》Web新手题总结_第45张图片
进去home目录下看看,构造命令127.0.0.1&&ls …/…/…/…/…/…/…/home/
《攻防世界》Web新手题总结_第46张图片
读取flag.txt,命令是:cat …/…/…/…/…/…/home/flag.txt
《攻防世界》Web新手题总结_第47张图片

十二、simple_php
《攻防世界》Web新手题总结_第48张图片
打开网址页面如下:
《攻防世界》Web新手题总结_第49张图片
简单审计下代码,发现需要以get的方式传入两个参数a和b。

a参数的要求 a必须等于0且a为真

b参数的要求 b不能为数字且b大于1234

这道题的核心问题是理解PHP语言的弱类型

构造命令:http://111.198.29.45:44957/?a=00a&&b=12345s
《攻防世界》Web新手题总结_第50张图片

你可能感兴趣的:(攻防世界)