[SHA2017](web) writeup
Bon Appétit (100)
- 打开页面查看源代码,发现如下
- 自然而然想到php伪协议,有个坑,看不了index.php,只能看 .htaccess
- http://bonappetit.stillhackinganyway.nl/index.php?page=php://filter/convert.base64-encode/resource=.htaccess
Ethical Hacker (200)
- 这题是一道注入
- 手工fuzz情况如下
- 注入点在email这个位置
- 过滤了空格,可以用/**/代替
- 过滤了括号
- 可以使用 -- 进行注释
- 采用union select 语句进行注入
这题是一个sqlite数据库的注入
sqlite注入简介看这:
id=1 : 7RTSGl9v907CzSdo
id=2 : W+OTqx5JlGWm
id=3 : pV/0nSQucWu5nAux
id=4 : ChqS4hrWupnQ4+Hr
...
wocao,这得有多少条,试试能不能用goup_concat,但是过滤了括号,这里要进行绕过,CVE-2016-1003
给一个大佬的传送门
所以绕过就是利用双引号进行绕过括号过滤
- 还有一个line表,
所以,要得到flag,应该是按照line表的顺序,去对应base64,组成字典,将base64的内容进行拼接,这里需要一个脚本,将line,base64分别保存为文本
注意:需要将base64当中的 / 斜杠去掉
#! python
# -*- coding: utf-8 -*-
__author__ = 'Deen'
import base64
with open('base64.txt') as fp:
b64 = fp.read().split(',')
fp.close()
with open('line.txt') as fp:
line = fp.read().split(',')
fp.close()
# 进行对应组合
dic = zip(line, b64)
flag = {}
for i in dic:
flag[i[0]] = i[1]
# 按次序拼接
content = ""
for i in range(1, len(b64) + 1):
content += flag[str(i)]
# 二进制读写
content = base64.b64decode(content)
file = open('flag', 'wb')
file.write(content)
- 这什么文件,binwalk也看不出来
- 不应该是会一张jpg么,解密也没有报错啊
(后面会更新)
网友评论