低版本php+nginx 解析漏洞

正文

事情要从某个午后说起,那时我正在日一个xx站,这个站nginx版本是1.6.2,php版本是5.3.3,开了GPC,我反复折腾了几天下来,有了数据库权限,有了任意文件下载,但是审了半天源码下来,审不出一个shell来,很绝望地上传了一个图片马,后面加了个/.php访问,它。。竟然执行了!?
5.png

对cve-2017-0199与cve-2017-8759的浅析

前言

首先说一下为什么偏偏选了这两个cve来复现+分析,其实是因为这两个cve复现比较容易,而且是目前apt团体主要用于apt打击的工具,而且于我个人而言,也是第一次分析word漏洞(当然这两个只是word的逻辑漏洞,并不是溢出漏洞,相对来说比较容易分析)。

没想到的是分析这两个漏洞的过程并不是一帆风顺,甚至可以说是坑坑洼洼了ORZ。也为了后人的学习以及自己将来的学习,故写下这篇文章。

810线下赛复盘

pwn

前言

将atoi_got修改成printf_plt,威力无穷~

线下赛只有一个pwn题,但这一个pwn题却出的非常好,虽然防御机制没有全开,但是考察点非常之多,就其中一个漏洞的利用,就考察了如下五个知识点。

  • string overflow
  • int overflow
  • off by one
  • race condition
  • heap overlay
  • fmt

8月9日个人赛总结 && writeup

前言

还好这次比赛网络环境比较差,主办方被迫放了许多离线题,让我这只bin dog有机可乘(手动滑稽),但这次比赛也确实发现自身的web能力有限,对于一些简单的web题竟然出现无从下手的情况。。也借这次比赛总结下离线环境下一些特殊操作吧。

正文

对于一些密码类的题目,手头有合适的工具最好了,但很多情况下,工具并不适用,比如这次比赛中,出现的aes解密,不清楚加密模式,需要输入iv和key,而手头的工具只可以输入key,且加密模式确定,没办法,只能去找库,不过比较幸运的是,之前安装过一个crypt的python库,看里面的源码,竟然有aes加密的说明,简单的倒推一下就能够推出解密脚本。

1
2
3
4
5
6
from Crypto.Cipher import AES
key = b'EaRncVfLgIPMaygA'
iv = b'HDkMsMEzkkzyQLTH'
cipher = AES.new(key, AES.MODE_CBC, iv)
msg = iv + base64.b64decode("kWZnRZMZv9JJLcD4v6o19iFKHOhc/S1Dv5y3r2YxhnRuWE8w/ji0jr0VFAGDbfzyQLcONBtB6pjetkHggUPv/rUmXoSfTnnWJ/cfv9deT56KoxwtXMGO4LJyXakTPE2tMcu0UexsnlhfhlqUE2vGnNnNUm996thkRlp3v36OfwgVGfT22UVjv+lpk0lKXgT2liQm/eBRilEaPw4o6P29YV7zN3AqI2y5Sa+I13o53cwO9JNOCXC28wuYSBrbOauu61VGj9MroQ3Si5swvx4p8vzyZZd5SkjIJ69AFi6pGPxnptofigIS5NRvVYLady+n0IWDj32whAPinOHcB8t3qJH1YtwNf9ly7gFQUgqCEXXDuRTcercMxe72siNNtg1LZTVQJLViD4G1ROdrh9Lic2BTe/9mAt/mKeRIaXJDHrTTu/d6xao4P995xjhSAhkD+cgbuOCgwhkpVH6cyRR+aFKFBv6UVZzob4s7ul9Xjzc9ETBaoE8CoAXLSZ5zEGs0jEbL0Hf5SdenlISyny97BFnqiGXRQCwBIacq+ytw/VK6DC2ddHAOndZ5K/zmnE0WuccCDTQ8gskaswFpbSG4q47HaN8t/VNug4NfZSGE/kbf+rW7QGlwMF66ksxhpthlkXJkICbpgnHNwsAjZnDhN1t9SDms4EIbozHaopiH79gy+h3N8lk/85OJfM0rac5CGcFlO9Tgf0ov6cGe8ABTIw1tFKZIcXWqETIbl60WCgBxmJFsBbl0ikDDyTsxSn8cNK8bVymqmL5TuTM2clBhd/rV44nA5vCGAnEKzfEHoV3YFc4gik8/nUutDmxJdjeqrd7M0Lm0QKpVPl8ATA5Tf2PKTJ9CaxIiLyazY74D2egqYZzddjq4aXXNPWgwYk5OKAZz+avRMJWu+ACx0wlih0ScOor4PMbpRqSc8oEjmeg=")
cipher.decrypt(msg)

对于zip压缩包,还是archpr好用。。

对于web弱口令还需要准备一本字典,其实早就应该准备了,包括一些bypass waf的字典,网站扫描的字典,经过这次比赛,发现对于web题而言,字典是多么重要。

对于线下赛,webshellkill是一款好工具,可以直接利用其来找容易发现的一句话后门。(不过自己也需要写一个利用命令执行自动种马的脚本)

rasctftools没有共模攻击的利用方式(这次比赛吃亏了!应该还有它没有的其他攻击方式)

线下赛的web waf需要完善。

新的pyc加密方式 stegosaurus

writeup 如下

【web】jarvis oj 刷题

web?

1
2
3
4
5
6
7
8
9
10
11
import np
o = [[11, 13, 32, 234, 236, 3, 72, 237, 122, 230, 157, 53, 7, 225, 193, 76, 142, 166, 11, 196, 194, 187, 152, 132, 135], [76, 55, 38, 70, 98, 244, 201, 125, 182, 123, 47, 86, 67, 19, 145, 12, 138, 149, 83, 178, 255, 122, 238, 187, 221], [218, 233, 17, 56, 151, 28, 150, 196, 79, 11, 150, 128, 52, 228, 189, 107, 219, 87, 90, 221, 45, 201, 14, 106, 230], [30, 50, 76, 94, 172, 61, 229, 109, 216, 12, 181, 231, 174, 236, 159, 128, 245, 52, 43, 11, 207, 145, 241, 196, 80], [134, 145, 36, 255, 13, 239, 212, 135, 85, 194, 200, 50, 170, 78, 51, 10, 232, 132, 60, 122, 117, 74, 117, 250, 45], [142, 221, 121, 56, 56, 120, 113, 143, 77, 190, 195, 133, 236, 111, 144, 65, 172, 74, 160, 1, 143, 242, 96, 70, 107], [229, 79, 167, 88, 165, 38, 108, 27, 75, 240, 116, 178, 165, 206, 156, 193, 86, 57, 148, 187, 161, 55, 134, 24, 249], [235, 175, 235, 169, 73, 125, 114, 6, 142, 162, 228, 157, 160, 66, 28, 167, 63, 41, 182, 55, 189, 56, 102, 31, 158], [37, 190, 169, 116, 172, 66, 9, 229, 188, 63, 138, 111, 245, 133, 22, 87, 25, 26, 106, 82, 211, 252, 57, 66, 98], [199, 48, 58, 221, 162, 57, 111, 70, 227, 126, 43, 143, 225, 85, 224, 141, 232, 141, 5, 233, 69, 70, 204, 155, 141], [212, 83, 219, 55, 132, 5, 153, 11, 0, 89, 134, 201, 255, 101, 22, 98, 215, 139, 0, 78, 165, 0, 126, 48, 119], [194, 156, 10, 212, 237, 112, 17, 158, 225, 227, 152, 121, 56, 10, 238, 74, 76, 66, 80, 31, 73, 10, 180, 45, 94], [110, 231, 82, 180, 109, 209, 239, 163, 30, 160, 60, 190, 97, 256, 141, 199, 3, 30, 235, 73, 225, 244, 141, 123, 208], [220, 248, 136, 245, 123, 82, 120, 65, 68, 136, 151, 173, 104, 107, 172, 148, 54, 218, 42, 233, 57, 115, 5, 50, 196], [190, 34, 140, 52, 160, 34, 201, 48, 214, 33, 219, 183, 224, 237, 157, 245, 1, 134, 13, 99, 212, 230, 243, 236, 40], [144, 246, 73, 161, 134, 112, 146, 212, 121, 43, 41, 174, 146, 78, 235, 202, 200, 90, 254, 216, 113, 25, 114, 232, 123], [158, 85, 116, 97, 145, 21, 105, 2, 256, 69, 21, 152, 155, 88, 11, 232, 146, 238, 170, 123, 135, 150, 161, 249, 236], [251, 96, 103, 188, 188, 8, 33, 39, 237, 63, 230, 128, 166, 130, 141, 112, 254, 234, 113, 250, 1, 89, 0, 135, 119], [192, 206, 73, 92, 174, 130, 164, 95, 21, 153, 82, 254, 20, 133, 56, 7, 163, 48, 7, 206, 51, 204, 136, 180, 196], [106, 63, 252, 202, 153, 6, 193, 146, 88, 118, 78, 58, 214, 168, 68, 128, 68, 35, 245, 144, 102, 20, 194, 207, 66], [154, 98, 219, 2, 13, 65, 131, 185, 27, 162, 214, 63, 238, 248, 38, 129, 170, 180, 181, 96, 165, 78, 121, 55, 214], [193, 94, 107, 45, 83, 56, 2, 41, 58, 169, 120, 58, 105, 178, 58, 217, 18, 93, 212, 74, 18, 217, 219, 89, 212], [164, 228, 5, 133, 175, 164, 37, 176, 94, 232, 82, 0, 47, 212, 107, 111, 97, 153, 119, 85, 147, 256, 130, 248, 235], [221, 178, 50, 49, 39, 215, 200, 188, 105, 101, 172, 133, 28, 88, 83, 32, 45, 13, 215, 204, 141, 226, 118, 233, 156], [236, 142, 87, 152, 97, 134, 54, 239, 49, 220, 233, 216, 13, 143, 145, 112, 217, 194, 114, 221, 150, 51, 136, 31, 198]]
r = [325799, 309234, 317320, 327895, 298316, 301249, 330242, 289290, 273446, 337687, 258725, 267444, 373557, 322237, 344478, 362136, 331815, 315157, 299242, 305418, 313569, 269307, 338319, 306491, 351259]
o = np.array(o)
r = np.array(r)
x = np.linalg.solve(o,r)
print x
string = ''
for i in x:
string += chr(int(str(i)[0:-2]))
print string

墨色的五月

前言

又是很久没更新博客了,毕竟我比较懒 = =。。。

这个月基本上没怎么做练习,去了趟北京被web狗吊打了ORZ。。。TCTF又被pwn题目吊打了,自身的实力距离国外强队的实力还是很大的(摊手)。

最近一段时间把毕业答辩、毕业设计、毕业论文等等等等等关于毕业的事情搞定啦。

比赛的话,最近还有两个比赛项目,一个是铁人、一个是jz的选拔赛。

总觉得自己应该在其他方面加强一点了,pwn的实力与其他方面的实力差太多太多了。

1、 加强数据流量分析能力(应对铁人三项,参考科赛

2、 加强web安全攻防能力(应对jz选拔赛,可以从vulhub、pwnhub学习

【pwn】2017-429final

前言

下次pwn选手真的不该去429线下。。这BGM神TM的= =。。

比赛很稳,主队拿了第7,分队第12,不过需要反思的是:

1、解pwn的速度还需要提升(awd形式尽早写出exp拿分很有优势)

2、web的话一定要防御住、防御住、防御住、重要的话说三遍。。

3、写好的exp脚本交由负责流量审计的队友来维护

4、pwn需要一个后门,不然遇到别人劫持了我们的exp流量就很吃亏了。

5、exp需要将getflag和uploadflag分开,并且分析本轮次没有拿到哪些队伍的flag

6、IDA分析不了的 ELF二进制文件就交给objdump来分析吧(静态分析软件也就这么几个,遇到二进制文件不能静态分析就惨了。

7、hook了pwn的read,但是别人没打我们队伍的pwn,估计是怕我们劫持流量。(摊手

8、十进制和十六进制。。。老是忘记在代码中区分。。ORZ

进入主题吧

,