中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

用Python寫(xiě)Exploit

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線(xiàn)!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

測(cè)試軟件漏洞時(shí),個(gè)人比較鐘愛(ài)用python來(lái)完成exploit,簡(jiǎn)單,快速。也見(jiàn)過(guò)不少用perl來(lái)寫(xiě)的,我不喜歡。隨便記錄一些常用的方法。

python中有個(gè)概念叫模塊,模塊中包含了定義的函數(shù),方便重用。使用模塊的語(yǔ)句如下:

import 模塊名

struct模塊有個(gè)很方便的函數(shù),pack,格式如下:

struct.pack(format,參數(shù))

將參數(shù)內(nèi)容轉(zhuǎn)換成format中指定的格式。寫(xiě)shellcode時(shí),需要將覆蓋地址倒序(little-endian)排列,為了方便,咱們可以使用這個(gè)函數(shù)。咱們要用到的指定格式是"<L”,以無(wú)符號(hào)長(zhǎng)整型的little-endian格式。

0x7ffa4512是通殺windows 2000/xp/2003的jmp esp地址,以它為例:

import struct

struct.pack('<L',0x7ffa4512)

溢出測(cè)試時(shí),常常需要生成一長(zhǎng)串字符串去填充緩沖區(qū),用循環(huán)的話(huà)比較麻煩。python中直接可以用乘號(hào)來(lái)操作字符串:

shellcode = '\x90' * 1000

執(zhí)行后,shellcode的值為1000個(gè)\x90。

同時(shí)也可以用加號(hào)來(lái)操作字符串,連接兩個(gè)字符串的例子如下:

import struct

buffer = 'A' * 100

jmpesp = struct('<L', 0x7ffa4512) #將0x7ffa4512轉(zhuǎn)化為\x12\x45\xfa\x7f的格式

buffer += jmpesp

在python中“+=”與C語(yǔ)言中的“+=”用法一樣,buffer += jmpesp等同于buffer = buffer + jmpesp,當(dāng)然也可以用后者來(lái)表示。



ord函數(shù)可用于將指定字符轉(zhuǎn)換成ASCIIi碼,函數(shù)聲明如下:

ord(字符)

例:

>>>print ord('A')

65

注意ord函數(shù)只接受字符,不能接受字符串。



對(duì)讀取文件時(shí)發(fā)生溢出的程序來(lái)說(shuō),需要生成一個(gè)帶有測(cè)試代碼的文件。python提供了方便的文件操作函數(shù)。

filename = 'test'         #定義一個(gè)變量,賦值為將要打開(kāi)的文件名

payload = 'A' * 5000  #生成五千個(gè)A

f = open(filename,'w') #以寫(xiě)模式打開(kāi)文件

f.write(payload)          #將五千個(gè)A寫(xiě)入到該文件內(nèi)

f.close                        #關(guān)閉

執(zhí)行以上代碼后,會(huì)在當(dāng)前目錄下生成一個(gè)內(nèi)容為5000個(gè)A的、文件名為test的文件。



有時(shí)需要對(duì)網(wǎng)絡(luò)程序進(jìn)行安全性測(cè)試,python也提供了socket編程。需要使用socket模板。

import socket

shellcode = 'A' * 1000

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)   #創(chuàng)建一個(gè)socket對(duì)象

s.connect(("127.0.0.1", 200))  #連接到127.0.0.1,端口指定為200

s.send(shellcode)                    #發(fā)送數(shù)據(jù)(一千個(gè)A)

該例子可以用在FTP Server之類(lèi)的網(wǎng)絡(luò)程序進(jìn)行測(cè)試。

 

標(biāo)簽: 安全 代碼 漏洞 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:PHPMailer發(fā)送郵件

下一篇: JDBC: 批量處理提高SQL處理速度