这一周我一直在攻防世界上做web新手题,今天刚刚做完,特意写篇博客来做一下总结。下面就开始写我的解题过程。
view_source
get_post
robots
backup
cookie
disabled_button
simple_js
xff_referer
weak_auth
webshell
command_execution
simple_php
==============================================================
一、view_source
查看网页源代码的方式有4种,分别是:1、鼠标右击会看到”查看源代码“,这个网页的源代码就出现在你眼前了;2、可以使用快捷Ctrl+U来查看源码;3、在地址栏前面加上view-source,如view-source:https://www.baidu.com ; 4、浏览器的设置菜单框中,找到“更多工具”,然后再找开发者工具,也可以查看网页源代码。
这道题明显考查查看源代码的方式,虽然不能通过鼠标右键的方式来查看,但是可以通过上面其他方式查看。
这里只举通过view-source来查看,其他方式你们自己去尝试。
在地址前面加上view-source,效果如下图:
所应就可以得到了flag,flag值为: cyberpeace{7f26e057a08a433d0147937622d87676}
二、get_post
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,在下面的解题中,会给出方法。
我们在网址后面加上"?a=1".例:119.198.29.45:48280?a=1。
post方式提交的话,我们要用到hackbug,如下:
得到flag。flag=cyberpeace{7fbfccb395244ac5e90120197e55396c}
三、robots
robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
我们可以查看robots.txt文件,看看里面有什么内容
robots里的文件不可自己爬取。但我们可以手动打开。
四、backup
常见的备份文件后缀名为.bak
打开便看到flag
五、cookie
Cookie是保存在客户端的纯文本文件。比如txt文件。所谓的客户端就是我们自己的本地电脑。当我们使用自己的电脑通过浏览器进行访问网页的时候,服务器就会生成一个证书并返回给我的浏览器并写入我们的本地电脑。这个证书就是cookie。一般来说cookie都是服务器端写入客户端的纯文本文件。
我们用burp来查看该网址的cookie值。
发现有个cookite.php文件,尝试打开
我们打开开发者工具查看http response
六、disabled_button
打开效果
打开开发者工具
disabled 属性规定应该禁用 input 元素。
被禁用的 input 元素既不可用,也不可点击。可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等)。然后,就需要通过 JavaScript 来删除 disabled 值,将 input 元素的值切换为可用。
删掉" disable="" "后便可点击按钮,点击后效果如下
七、simple_js
打开题目网址试试:
一来要输入密码,随便输入123。
查看源码
我也不知道该如何做。接下来的做法是参考大佬的:
看到\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
将这串数字进行ASCII码转换得:786OsErtk12
根据提示flag格式为Cyberpeace{xxxxxxxxx} ,提交Cyberpeace{786OsErtk12}得到正确答案。
八、xff_referer
xff:是X-Forwarded-For的简写,用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
referer:是告诉服务器我是从哪个地方来的
这道题跟今年强网杯web第一题基本一样,只有去增加或者修改xff和referer的值即可
用burp解题如下:
构造X-Forwarded-For=123.123.123.123
构造referer:https://www.google.com
九、weak_auth
此题考查弱口令,进入题目,原来是道暴力破解题
暴力破解适合题目类型:登录密码较为简单,且不会限制登录次数
用brup爆破,根据字节长度不同,就可知道密码。brup爆破缺点就是找到密码后还在不断尝试,知道字典用完。我觉得如果会写python脚本来爆破的话,效率肯定比brup好。
十、webshell
这道题明显考查后门的利用,对于这道题我们用菜刀工具。
一连接服务器,就看到flag.txt
打开便可拿到flag值
十一、command_execution(命令执行)
ping命令常常会存在命令注入漏洞,如我们可以用127.0.0.0.1&&ls 来测试
看到除了执行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目录下
进去home目录下看看,构造命令127.0.0.1&&ls …/…/…/…/…/…/…/home/
读取flag.txt,命令是:cat …/…/…/…/…/…/home/flag.txt
十二、simple_php
打开网址页面如下:
简单审计下代码,发现需要以get的方式传入两个参数a和b。
a参数的要求 a必须等于0且a为真
b参数的要求 b不能为数字且b大于1234
这道题的核心问题是理解PHP语言的弱类型