渗透工具开发——XSS平台的命令行实现

前言

想学网络安全的小伙伴有免费资料分享哦

通过XSS平台,能够便于对XSS漏洞进行测试,获得重要信息。目前,可供使用的在线XSS平台有很多,也可以尝试自己搭建XSS平台。 但是,如果测试目标无法出网,我们就需要在内网搭建一个轻量化的XSS平台,既要安装方便,又要支持跨平台。

我暂时没有找到合适的开源工具,于是打算使用Python编写一个命令行工具,提供XSS平台的功能

简介

想学网络安全的小伙伴有免费资料分享哦

本文将要介绍以下内容:

◾设计思路

◾实现细节

◾开源代码

设计思路

想学网络安全的小伙伴有免费资料分享哦

参照XSS平台,命令行工具需要提供以下功能:

1.创建HTTPS服务器,提供WEB服务

2.区分不同的数据,提取出关键内容并保存

3.功能模块化,便于二次开发

实现细节

1.创建HTTPS服务器,提供WEB服务想学网络安全的小伙伴有免费资料分享哦

首先需要创建证书,这里可以使用openssl,命令如下:

生成证书文件https_svr_key.pem

创建HTTPS服务器的Python3测试代码如下:

以上代码将会创建一个支持HTTPS协议的WEB服务器,功能同python -m SimpleHTTPServer 8000类似

2.区分不同的数据,提取出关键内容并保存

需要自定义处理模块RequestHandler,处理GET包和POST包

处理GET包的代码如下:

其中,print(self.headers)用来输出GET请求的Header内容,可用于识别用户浏览器

为了获取用户Cookie,这里采用自定义格式,如果GET请求的地址带有cookie字符,将请求内容保存成文件,存储获得的用户Cookie

处理POST包的代码如下:

以上代码会对POST包统一回复文本内容Success,状态码为200

对POST请求的地址进行判断,分别对应以下三个功能:

(1)保存用户屏幕截图

请求地址为/screen

从POST请求的参数中提取图像数据,作Base64解码后保存

(2)控制用户向指定地址发送http数据包,保存返回结果

请求地址为/data

从POST请求的参数中提取数据并保存

(3)默认功能

命令行输出POST请求的参数

注:

以上三个功能在提取数据内容时,需要使用urllib.parse.unquote()进行解码

3.功能模块化,便于二次开发

默认XSS平台的访问地址为:https://<  xss platform url >/index.js

创建HTTPS服务器后,只需要编辑Python脚本同级目录下的index.js即可

这里介绍以下两个js脚本实现的功能:

(1)获取用户Cookie

读取用户Cookie可使用document.cookie

在回传Cookie数据时,为了避免跨域问题,可使用Image对象,示例代码如下:

使用Image对象,只能发送GET请求,无法获得响应内容,只能通过onerror和onload事件判断是否响应

(2)通过js发送HTTP请求

HTTP请求支持GET和POST,还需要区分同步和异步方法

对于同步方法,调用一旦开始,调用者必须等到方法调用返回后才能继续后续的行为。为了将请求结果回传至服务器,可以通过return获得数据包的返回结果后再进行回传

对于异步方法,调用一旦开始,方法调用就会立即返回。为了将请求结果回传至服务器,这里可以通过回调函数callback实现

回调函数callback的简单理解:函数可以作为参数在另一个函数中被调用

例如如下代码:

执行代码后将在控制台输出1

综上,向指定url发送GET数据包,将请求结果回传至服务器可使用两种方法:

方法1:同步方法

方法2:异步方法+回调函数

注:

发送请求时加了参数"?t=" + Math.random()是为了防止接收到服务器的缓存页面

对于Chrome浏览器,在发送HTTP请求时,如果进行跨域访问,Chrome会提示请求被CORS协议阻止,但不影响数据的发送和接收

开源代码

想学网络安全的小伙伴有免费资料分享哦

完整代码已开源,地址如下:

github.com/3gstudent/p…

pyXSSPlatform可直接在命令行下运行,支持以下三个功能:

◾GetCookie,获得用户Cookie,保存为.txt文件

◾CaptureScreen,截取用户屏幕,保存为.png文件

◾GET/POST,控制用户向指定地址发送http数据包,结果保存为.html文件

使用方法:

(1)通过openssl生成自签名证书,命令示例:

(2)编辑文件index.js

填入要加载的js代码,代码模板可参考Payload_Template中的文件

(3)启动WEB服务器,命令示例:

此时,XSS平台的启动地址如下:

https://192.168.1.1/index.js

可随时修改index.js控制用户执行不同的功能

小结

本文介绍了通过Python搭建HTTPS服务器并在命令行实现XSS平台的方法,开源工具pyXSSPlatform,操作方便,支持跨平台运行,可进行二次开发。

想学网络安全的小伙伴有免费资料分享哦

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值