前言
最近在上网路安全实验课程的时候,其中一个任务就是完成这里面的题目,我还是记录一下吧, ,到时候补充到实验报告里面
basic部分
decode
这个题目下载之后是一个压缩包,但是里面什么东西也没有,于是放进HXD里面查看是否有其他的东西,打开发现十六进制编码,用Hackbar解码得到flag
白驹过隙
题目的意思是说快,打开页面就会发现错过了flag之类的操作,肯定是存在跳转,老题目要么就抓包,要么就curl一下,这里我选择用vps来curl一下这个网址,直接出flag
齐白石
这尼玛我感觉这是异形。。关齐白石什么事。。。根据提示先把图片在16进制编辑器打开看一下
,拉到最后一行发现flag
encode
打开文件会发现一堆混淆,怀疑是js混淆,然后放进火狐的js调试器里面直接执行就出现flag了
DNS解析
这个题目就是考了Windows下面的一个DNS解析的hosts文件,其实这是个历史遗留问题,就是每次要去经过DNS解析的时候都会默认先去找一下这个host文件里面的相关域名所对应的ip就会免去查上层DNS服务器里面的东西,所以我们只要在hosts文件下面添加,这一行,然后输入题目对应的的域名即可
host文件的目录:C:\Windows\System32\drivers\etc\hosts
forfun2
这题也是骚气,我他喵一直查看源代码都没找到,结果我在原网页上点击了查看背景图片,就出现flag了受不了。。。这题有点坑。。以前都没试过网网页图片上隐藏信息想。。。。
forfun
这个题目就是一直右击查看源代码,找到flag为止,flag在其中的这个页面下如图
进去之后用ctrl+f
找到对应的flag
签到1
打开题目让我们check the source code !!,点击右键查看源代码发现一段base64,解码得到flag{this_is_so_easy_is_it?}
签到2
打开网站发现http header!!!
然后F12去看看http头部的信息,发现flag
超简单的密码
这一个题目很明显的提示,注意看键盘很显然这是个键盘密码,从键盘上翻译一下就好得到
flag{isee}
滑稽
下载下来是一个ppt,ppt里面没发现些什么,但是这个东西是需要解密的
然后放到16进制编辑器里面看一下发现有zip包的文件头,于是就开始把这个文件后缀改为zip打开
在里面找到一个很奇怪的图片文件,其余的图片都能显示就他不能,放进16进制编辑器看一下发现ppt的base64加密的密码,解开之后就是ppt密码cumt2017ctf
再把文件后缀改为ppt,输入密码,移动一下ppt就发现flag了
Fast 30
这明显就是一个脚本题,叫你2s内post你发现的东西,可以在http header里面发现有个flag选项想必就是把这个东西给post上去,参数是key,下面是我写的脚本
#!/usr/bin/python
# Author:0verWatch
# coding:utf-8
import requests
url = 'http://web.bxsteam.xyz/fast/'
req = requests.Session()
ans = req.get(url)
param = ans.headers['Flag']
flag = req.post(url,data={
'key':param})
print flag.content
得到flag
web
源代码
这个题目是查找页面的元素,打开之后发现一段可疑的信息其实就是把里面的中文字体去掉就是flag
colorSnake
这个题目还是很有意思的,虽然要写个脚本当然你也可以手动去执行。。。这个进去就是一个小游戏,点击右键查看源码后发现显示分数的地方id是score,查看他的源代码发现还存在一个game.js的代码脚本,于是立即在里面搜关于score的信息
然后发现了这样的一段代码,同时发现一个很可疑的php代码,这里面有个xhr,介绍一下xhr,xhr叫XMLHttpRequest ,XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。XMLHttpRequest 可以同步或异步地返回 Web 服务器的响应,并且能够以文本或者一个 DOM 文档的形式返回内容。
也就是去访问这个页面的功能,我也去访问,发现有json格式的东西,把里面的msg部分的内容unicode解码,发现提示,这么久才吃到一个,零分!可以猜到应该是用这个去访问页面去增加得分,每刷新一下这个页面发现score加一了,但是刷新的太快又会重新置0,所以我就写了个小脚本
#!/usr/bin/python
# Author:0verWatch
# coding:utf-8
import requests
import json
import time
url = 'http://202.119.201.199/challenge/web/colorSnake/getScore.php'
req = requests.Session()
for i in range(0,55): #怕会出现重新置零的现象,因此设置的数比50大
time.sleep(1) #用于延时
ans = req.get(url)
msg = json.loads(ans.content)['msg']
print json.loads(ans.content)['score'],msg.encode('utf-8')
最后得到flag
备份
备份这个题目感觉也是一个脚本题目,一进去题目就提示There are too much baks in the website ,can you find the flag in these baks?,说明我们要遍历多个bak文件并且读取里面的内容。。。只要get请求就能下在相关bak文件了
直接放上我写的脚本。。。
#!/usr/bin/python
# Author:0verWatch
# coding:utf-8
import requests
url = "http://202.119.201.199/challenge/web/code/{num}.bak"
res = requests.Session()
for i in range(0,1500): #开大点无所谓
payload = url.format(num=i)
#print payload
ans = res.get(payload)
file_name = '{_}.bak'.format(_=i)
#print file_name
with open(file_name, "wb") as code:
file_content = code.write(ans.content)
code.close()
print file_name
f = open(file_name,'rb')
read_content = f.read()
if 'flag' in read_content:
print read_content
break
else:
print 'Waiting!!!!!'
f.close()
结果应该是第998个bak文件里面有flag
上传一
打开页面让我们上传图片文件,尝试用bp抓包发包
发现
所以就是让我们上一个可执行的文件,那就尝试把后缀名改名为php,然后就得到两个flag了,这太水了吧,这题还送一个flag。。。。上传二也秒掉了
上传二
其实也是上传一的页面,这个题目其实想要修改的是Content-Type:这个参数,由于我上一题是直接上传一个图片上去的,这样一来就导致直接出来两个flag,这题只要是Content-Type: image/jpeg这个类型就可以出flag,如果一开始你上传一上传的不是图片的话,而是一般的文件流的话们这里的Content-Type显示的是application/stream之类的东西,就不会两个flag出来的
Cookie?
页面请求以管理员身份进行登录,尝试用bp抓包查看
把包里面cookie里面的值改一下,一开始是guest,我们改成admin,发包
得到下面这个页面
有个key还有个密文,猜测是应该是维吉尼亚密码,把该网页中的图片拖到百度识图识别一下,果然是维吉尼亚。。。
然后我们可以在线解密,我们可以去这个页面 http://ctf.ssleye.com/vigenere.html 进行维吉尼亚密码解密
得到flag