第六周 第三次
目录
学习到的知识
1.MD5强弱比较可以都可以使用数组绕过
2.基于MD5()的万能密码 ffifdyop
WEB
[BJDCTF2020]Easy MD5
编辑[护网杯 2018]easy_tornado
Crypto
信息化时代的步伐
凯撒?替换?呵呵!
Misc
神秘龙卷风
打开环境 什么都没有 输入任何也都没有反应 我们进行抓包
发现查询语句
我们想到sql注入
发现md5函数 我们进行搜索
md5(1,2)
1:是要进行计算的字符串
2:可选 是TRUE 就是将计算完的数字进行16位字符二进制输出
是FALSE 就是将计算完的数字进行32位字符十六进制输出
所以我们明白 我们需要输入一个能够将 16位二进制变为sql注入语句的
我们想到万能密码
在mysql中 对于字符串
''or'1xxxxxx' ---->True
''or'0xxxxxx' ---->False
所以我们要找到一个字符串 转换为hex 后再变为字符能为'or'非0
ffifdyop
变为hex后为
276F722736C95D99E921722CF9ED621C
转为字符串后
'or'6É]é!r,ùíb
所以我们输入这个字符串
查看源代码
发现弱比较
使用数组绕过
MD5绕过(强弱类型比较)_md5弱类型比较_陈wonton的博客-CSDN博客
?a[]=1&b[]=2
发现MD5强比较
继续使用数组绕过
param1[]=1¶m2[]=3
得到flag
这道对我来说特别新 并且是边看边做
本质是 SSTI注入
并且 题目也提示我们了
tornado是 python编写的框架
类似于后端渲染
sql注入是用户输入的代码
SSTI注入是框架的注入
所以我们开始答题
打开环境 一个一个看过去
在每一个url上面都有一个 hash 然后这个文件就给我们是怎么计算哈希的
我们现在需要找 cookie_secret这个的数值
然后 我们搜索 发现cookie_secret这个是在tornado框架有的文件
在handler.settings 文件下
所以我们寻找注入点
当我们把hash值改变后得到
我们看看更改error
url改什么 他都会返回什么 所以我们找到注入点了 我们在这上面进行框架注入
注意 这个框架注入需要用{{}}来注入
error?msg={{handler.settings}}
得到了数值 然后我们进行计算
import hashlib
hash = hashlib.md5()
filename='/fllllllllllllag'
cookie_secret="b2ab97ba-5c7a-4fff-a8f5-c459b76e6b8a"
hash.update(filename.encode('utf-8'))
s1=hash.hexdigest()
hash = hashlib.md5()
hash.update((cookie_secret+s1).encode('utf-8'))
print(hash.hexdigest())
然后构造
file?filename=/fllllllllllllag&filehash=c446c58655463f690c65a78092d75fc3
得到flag
[护网杯 2018]easy_tornado WriteUp(超级详细!)_lunan0320的博客-CSDN博客
得到新的加密方法 中文电码
中文电码查询 - 中文电码转换 - 中文电码对照表
我们进行比对 MTHJ得到flag
quipqiup - cryptoquip and cryptogram solver
使用这个暴力破解
发现第一条就是可以读的句子
暴力破解
Brainfuck - interpreter online
得到flag