【Python】POST上传APK检测是否存在ZipperDown漏洞
前言
用POST的方式上传文件,检测APK是否存在ZipperDown漏洞。
代码
# authour:zzzhhh
# 2018.08.08
# check ZipperDown
# -*- coding: utf-8 -*-
from selenium import webdriver
import os
import time
import urllib2
import base64
import json
def post_upload(file_path):
file_size = os.path.getsize(file_path) # 获取文件大小
filename = os.path.basename(file_path) # 获取文件名
boundary = '----------%s' % "WebKitFormBoundar"+base64.b64encode(hex(int(time.time() * 1000))).rstrip('=')
data = []
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'id')
data.append('WU_FILE_0')
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'name')
data.append("%s" % filename)
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'type')
data.append('application/vnd.android.package-archive')
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'lastModifiedDate')
data.append('Sat Apr 12 2014 05:07:04 GMT+0800 (涓浗鏍囧噯鏃堕棿)')
data.append('--%s' % boundary)
data.append('Content-Disposition: form-data; name="%s"\r\n' % 'size')
data.append("%s" % file_size) #文件大小
data.append('--%s' % boundary)
fr = open(filename, 'rb')
data.append('Content-Disposition: form-data; name="file"; filename="%s"' % filename)
data.append('Content-Type: %s\r\n' % 'application/vnd.android.package-archive')
data.append(fr.read())
fr.close()
data.append('--%s--\r\n' % boundary)
http_url = 'http://appscan.360.cn/app/upload_zipperdown/'
http_body = '\r\n'.join(data)
try:
# buld http request
req = urllib2.Request(http_url, data=http_body)
# header
req.add_header('Content-Type', 'multipart/form-data; boundary=%s' % boundary)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36')
req.add_header('Referer', 'http://appscan.360.cn/tool/')
# post data to server
resp = urllib2.urlopen(req, timeout=5)
# get response
qrcont = resp.read()
print qrcont
return qrcont
except Exception, e:
print 'http error'
if __name__ == '__main__':
file_path = os.getcwd() +"\\1.apk"
res = post_upload(file_path)
setting = json.loads(res)
print 'http://appscan.360.cn/'+setting['result']
【Python】POST上传APK检测是否存在ZipperDown漏洞的更多相关文章
- 基于 jq 实现拖拽上传 APK 文件,js解析 APK 信息
技术栈 jquery 文件上传:jquery.fileupload,github 文档 apk 文件解析:app-info-parser,github 文档 参考:前端解析ipa.apk安装包信息 - ...
- input上传文件检测文件大小
前几天在做 input[type='file'] 上传图片时,需要检测上传文件的内存大小,写了一个小demo,在此做一总结: <!DOCTYPE html> <html lang=& ...
- Python判断上传文件类型
在开发上传服务时,经常需要对上传的文件进行过滤. 本文为大家提供了python通过文件头判断文件类型的方法,非常实用. 代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- Python 一键上传下载&一键提交文件到SVN入基线工具
一键上传下载&一键提交文件到SVN入基线工具 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用说明 1 注: 根据我司项目规则订制的一套工具,集成以下功能,源码 ...
- python requests上传文件 tornado 接收文件
requests 上传文件 import requests def images(): url = 'http://127.0.0.1:8889/upload/image' files = {'fil ...
- python 图片上传写入磁盘功能
本文是采取django框架,前端上传图片后端接收后写入磁盘,数据库记录图片在磁盘上的路径(相对),以下是前端上传到后端入库的基本流程 一. html代码 <!DOCTYPE html> & ...
- python 文件上传本地服务器
1:python之上传文件 1.1.url代码 """untitled1222 URL Configuration The `urlpatterns` list rout ...
- python文件上传工具实现
0x00 之前验收waf模块webshell效果,组网pc--waf--webserver,收集网络上的webshell样本,进行上传测试.由于数量较多8000+个样本, 只好写了个工具进行验收. w ...
- 使用Python Requests上传表单数据和文件
在Python环境下写一个HTTP客户端,发送POST请求,同时上传表单数据和文件,我们可以使用Requests模块来实现.代码如下: data = { 'name': 'nginx' } files ...
随机推荐
- THUWC2017颓废记
2.9翘掉Wc闭幕式,和石家庄大爷们坐一辆车去杭州…路上日常orz gzz.2.10早上来报到,拍照.宿舍里另外四个人都是GD大爷.开幕式是喜闻乐见的thu日常黑pku(“在中国,世界一流大学有两所, ...
- QML——添加自定义模块
一.模块的定义 在使用QML时,我们常常看到类似这样的语句: import QtQuick 2.0 import QtSensors 5.0 通过这些import语句,我们就能使用QML中的相关控件了 ...
- Spring面试,IoC和AOP的理解, @Transactional原理及使用
spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实 ...
- 【Cf #290 C】Fox And Dinner(最大流)
如果要相邻两个数(a[i] >= 2)相加为质数,显然它们的奇偶性不同,也就是说一个圆桌(环)必须是偶环. 也就是答案的若干个环组成了一张二分图,其中以奇偶分色. 考虑每个点的度数一定为2,用最 ...
- bootstrap.yml与application.yml的区别
说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...
- Netlink 介绍(译)
原文地址:http://people.redhat.com/nhorman/papers/netlink.pdf 译文: 1 介绍 在Linux和Unix的众多发行版中的网络配置功能, 都是编程者事后 ...
- graphviz 程序生成多种类型图表详解
简介 一幅图抵得上千言万语,这在描述复杂的计算机系统时尤为正确.当系统环境变得更加复杂时,用图将它们表示出来并记入文档就显得更加重要.例如,虚拟化技术有很多优点,但它们通常会让环境变得更加复杂和更难理 ...
- Java基础-IO流对象之打印流(PrintStream与PrintWriter)
Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...
- RAC的坑
http://www.cocoachina.com/industry/20140609/8737.html 1.对数组的观察 有了这些Category,大部分的Delegate都可以使用RAC来做.或 ...
- Jekins - Hello world,Jekins + Maven + Git + Tomcat 的简单应用
Java Web 工程 新建一个简单的 Java Web 工程,并提交至 GitHub,可参考 Eclipse 提交工程至 GitHub 下载 jekins.war 在 http://mirrors. ...