web渗透测试工具_web渗透测试分析题

hacker|
176

CTF流量分析之题型深度解析

0x01 介绍

在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,参赛选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索。

pcap流量包的分析通常都是通过图形化的网络嗅探器——wireshark进行的,这款嗅探器经过众多开发者的不断完善,现在已经成为使用最为广泛的安全工具之一。在之前的文章中,斗哥已经为大家介绍了 wireshark的基本使用 。接下来,斗哥将为大家介绍目前CTF流量分析中的经典题型和解题思路。

0x02 经典题型

CTF题型主要分为流量包修复、WEB流量包分析、USB流量包分析和其他流量包分析。

■ 流量包修复

比赛过程中有可能会出现通过wireshark打开题目给的流量包后提示包异常的情况,如下图所示:

解题思路:

通过在线pacp包修复工具进行修复:

练练手

第一届 “百度杯” 信息安全攻防总决赛 线上选拔赛:find the flag

pacp文件地址:

■ WEB流量包分析

WEB数据包分析的题目主要出现WEB攻击行为的分析上, 典型的WEB攻击行为有:WEB扫描、后台目录爆破、后台账号爆破、WEBSHELL上传、SQL注入等等。

题型:

通过给出的流量包获取攻击者使用的WEB扫描工具。

解题思路:

常见的WEB扫描器有Awvs,Netsparker,Appscan,Webinspect,Rsas(绿盟极光),Nessus,WebReaver,Sqlmap等。要识别攻击者使用的是哪一种扫描器,可通过wireshark筛选扫描器特征来得知。

相关命令:http contains “扫描器特征值”。

常见的扫描器特征参考:

练练手

安恒八月月赛流量分析:黑客使用的是什么扫描器?

pacp文件地址:

链接: 提取码:q6ro

题型:

已知攻击者通过目录爆破的手段获取了网站的后台地址,请通过给出的流量包获取后台地址。

解题思路:

要获取流量包中记录的后台地址,可通过wireshark筛选后台url特征来得知。

相关命令:http contains “后台url特征”。

常见后台url特征参考:

练练手

安恒八月月赛流量分析:黑客扫描到的后台登录地址是什么?

pacp文件地址:

链接: 提取码:q6ro

题型:

已知攻击者通过暴力破解的手段获取了网站的后台登陆账号,请通过给出的流量包获取正确的账号信息。

解题思路:

WEB账号登陆页面通常采用post方法请求,要获取流量包中记录的账号信息可通过wireshark筛选出POST请求和账号中的关键字如‘admin’。

相关命令:http.request.method=="POST" http contains == "关键字"。

练练手

安恒八月月赛流量分析:黑客使用了什么账号密码登录了web后台?

pacp文件地址:

链接: 提取码:q6ro

题型:

已知攻击者上传了恶意webshell文件,请通过给出的流量包还原出攻击者上传的webshll内容。

解题思路:

Webshell文件上传常采用post方法请求,文件内容常见关键字eval,system,assert要。获取流量包中记录的webshell可通过wireshark筛选出POST请求和关键字.

相关命令:http.request.method=="POST" http contains == "关键字"

练练手

安恒八月月赛流量分析:黑客上传的webshell文件名是?内容是什么?

pacp文件地址:

链接: 提取码:q6ro

■ USB流量包分析

USB流量指的是USB设备接口的流量,攻击者能够通过监听usb接口流量获取键盘敲击键、鼠标移动与点击、存储设备的铭文传输通信、USB无线网卡网络传输内容等等。在CTF中,USB流量分析主要以键盘和鼠标流量为主。

■ 键盘流量

USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节。其中键盘击键信息集中在第三个字节中。数据如下图所示:

如上图所示击键信息为0x05,对应的按键为“B“。

具体的键位映射关系可参考:《USB键盘协议中键码》中的HID Usage ID,链接:

题型:**

Flag藏于usb流量中,通过USB协议数据中的键盘键码转换成键位。

解题思路:

1.使用kali linux中的tshark 命令把cap data提取出来:tshark -r usb.pcap -T fields -e usb.capdata usbdata.txt,并去除空行。

练练手

安全评测人员在对某银行卡密码输入系统进行渗透测试,截获了一段通过USB键盘输入6位数字密码的流量,其中也包含了一些其他无关的USB设备的流量,你能从中恢复出6位数字密码吗?最终提交的flag格式为flag。

pacp文件地址:

链接:

提取码:q6ro

python键盘键码转换脚本:同上

■ 鼠标流量

USB协议鼠标数据部分在Leftover Capture Data域中,数据长度为四个字节。

其中第一个字节代表按键,当取0x00时,代表没有按键、为0x01时,代表按左键,为0x02时,代表当前按键为右键。第二个字节可以看成是一个signed byte类型,其最高位为符号位,当这个值为正时,代表鼠标水平右移多少像素,为负时,代表水平左移多少像素。第三个字节与第二字节类似,代表垂直上下移动的偏移。数据如下图所示:

如上图所示数据信息为0x00002000,表示鼠标垂直向上移动20。

题型 :

Flag藏于usb流量中,通过USB协议数据中的鼠标移动轨迹转换成Flag。

解题思路:

练练手

这是一道鼠标流量分析题。

pacp文件地址:

链接: 提取码:q6ro

python鼠标数据转换脚本:同上

■ 其他流量包分析

除了常规的WEB和USB流量外,可能还存在诸如SMTP,Telnet等流量,均与WEB流量分析类似,不再赘述。

0x03 总结

以上为斗哥了解的流量分析在CTF比赛中的基本题型,欢迎大家补充。

参考:

《记一道USB流量分析CTF题》,

CTF Wiki,

常见36种WEB渗透测试漏洞描述及解决方法-文件包含漏洞

漏洞描述:程序代码在处理包含文件时没有严格控制。可以先把上传的静态文件,或网站日志文件作为代码执行,或包含远程服务器上的恶意文件,获取服务器权限。

解决方法:

(1)严格检查变量是否已经初始化,严格检查include类的文件包含函数中的参数是否外界可控;

(2)对所有输入可能包含的文件地址,包括服务器本地文件及远程文件严格检查,参数中不允许出现../之类的目录跳转符;

(3)在客户端和服务段同时做数据的验证与过滤。

如何进行Web渗透测试

1.SQL Injection(SQL注入)

(1)如何进行SQL注入测试?

首先找到带有参数传递的URL页面,如 搜索页面,登录页面,提交评论页面等等.

注1:对 于未明显标识在URL中传递参数的,可以通过查看HTML源代码中的"FORM"标签来辨别是否还有参数传递.在FORM 和/FORM的标签中间的每一个参数传递都有可能被利用.

form id="form_search" action="/search/" method="get"

div

input type="text" name="q" id="search_q" value="" /

input name="search" type="image" src="" /

a href="/search/" class="f358-a9d9-973f-7da8 fl"Gamefinder/a

/div

/form

注 2:当你找不到有输入行为的页面时,可以尝试找一些带有某些参数的特殊的URL,如

其 次,在URL参数或表单中加入某些特殊的SQL语句或SQL片断,如在登录页面的URL中输入 /INDEX.ASP?USERNAME='HI' OR 1=1

注1:根据实际情况,SQL注入请求可以使用以下语句:

' or 1=1- -

" or 1=1- -

or 1=1- -

' or 'a'='a

" or "a"="a

') or ('a'='a

注2:为什么是OR, 以及',

「Web渗透测试」第一天:基础入门-概念名词

域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

阿里云:阿里云域名注册

域名级数是指一个域名由多少级组成,域名的各个级别被“.”分开,简而言之,有多少个点就是几级域名。顶级域名在开头有一个点,“一级域名”就是在“com top net org”前加一级,“二级域名”就是在一级域名前再加一级,二级域名及其以上级别的域名,统称为子域名,不在“注册域名”的范畴中。

进行渗透测试时,其主域名找不到漏洞时,就可以尝试去测试收集到的子域名,有可能测试子域名网站时会有意向不到的效果,然后可以由此横向到主网站。

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

本地HOSTS是存储的域名对应的IP地址,当我们访问一个网站输入域名时,首先会在本地的HOSTS文件查找是否有对应的IP地址,如果有就会直接解析成本地的IP进行访问。如果不能查到,那么会向DNS域名系统进行查询,找到对应的IP进行访问。

SDN全称是内容分发网络。其目的是让用户能够更快速的得到请求的数据。简单来讲,cdn就是用来加速的,他能让用户就近访问数据,这样就更更快的获取到需要的数据。

关系:通过dns服务我们可以很快的定位到用户的位置,然后给用户分配最佳cdn节点,但是这种调度方式存在一个问题,例如,当我 是北京联通的用户但是使用的却是深圳电信的ldns的话,调度服务器会给我分配到深圳电信的cdn服务器,这样就产生了错误的调度。

通常也称为域名系统投毒或DNS缓存投毒。它是利用虚假Internet地址替换掉域名系统表中的地址,进而制造破坏。当网络用户在带有该虚假地址的页面中进行搜寻,以访问某链接时,网页浏览器由于受到该虚假条目的影响而打开了不同的网页链接。在这种情况下,蠕虫、木马、浏览器劫持等恶意软件就可能会被下载到本地用户的电脑上。

DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。这类攻击一般通过恶意软件来更改终端用户TCP/IP设置,将用户指向恶意DNS服务器,该DNS服务器会对域名进行解析,并最终指向钓鱼网站等被攻击者操控的服务器。

域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。一旦您的域名被劫持,用户被引到假冒的网站进而无法正常浏览网页,用户可能被诱骗到冒牌网站进行登录等操作导致泄露隐私数据。

针对DNS的DDoS攻击通过控制大批僵尸网络利用真实DNS协议栈发起大量域名查询请求,利用工具软件伪造源IP发送海量DNS查询,发送海量DNS查询报文导致网络带宽耗尽而无法传送正常DNS查询请求。发送大量非法域名查询报文引起DNS服务器持续进行迭代查询,从而达到较少的攻击流量消耗大量服务器资源的目的。

所有放大攻击都利用了攻击者和目标Web资源之间的带宽消耗差异,由于每个机器人都要求使用欺骗性IP地址打开DNS解析器,该IP地址已更改为目标受害者的真实源IP地址,然后目标会从DNS解析器接收响应。为了创建大量流量,攻击者以尽可能从DNS解析器生成响应的方式构造请求。结果,目标接收到攻击者初始流量的放大,并且他们的网络被虚假流量阻塞,导致拒绝服务。

asp php aspx jsp javaweb pl py cgi 等

不同的脚本语言的编写规则不一样,程序产生的漏洞自然也不一样(代码审计)。

不同的脚本语言的编写规则不一样,程序产生的漏洞自然也不一样(代码审计)。

当第一次攻击之后,会留一个端口让攻击者下次从这个端口进行攻击

网页、线程插入、扩展、C/S后门

方便下次攻击进入

管道(攻击通道)

玩法,免杀

1. 网站源码:分脚本类型,分应用方向

2. 操作系统:windows linux

3. 中间件(搭建平台):apache iis tomcat nginx 等

4. 数据库:access mysql mssql oracle sybase db2 postsql等

Web应用一般是指B/S架构的通过HTTP/HTTPS协议提供服务的统称。随着互联网的发展,Web应用已经融入了我们的日常生活的各个方面。在目前的Web应用中,大多数应用不都是静态的网页浏览,而是涉及到服务器的动态处理。如果开发者的安全意识不强,就会导致Web应用安全问题层出不穷。

我们一般说的Web应用攻击,是指攻击者通过浏览器或者其他的攻击工具,在URL或者其他的输入区域(如表单等),向Web服务器发送特殊的请求,从中发现Web应用程序中存在的漏洞,进而操作和控制网站,达到入侵者的目的。

在做安全测试的时候,我们要从web页面层开始,因为较为方便,如果从操作系统进行,是十分不容易的。

SQL 注入、上传、XSS、代码执行、变量覆盖、逻辑漏洞、反序列化等

SQL注入

内核漏洞

如何进行Web渗透测试~求SEO

Web性能测试涉及的范围太广,但一般web开发者在程序上线以后很多都曾遇到过性能的问题。普遍表现为页面速度开始急剧变慢,正常访问时间变的很长,或则干脆给你抛出异常错误页面。这里会涉及到很多可能发生的情况,举例几个最主要发生的情况:

*数据库连接超过最大限制,一般表现为程序的连接池满,拒绝了与数据库的连接。

*数据库死锁

*WebServer超过最大连接数(一般在虚拟主机上才会限制)

*内存泄漏

*Http连接数太多,即访问量超过了机器和软件设计正常所能提供的服务

0条大神的评论

发表评论