【网络安全的神秘世界】渗透测试基础
🌝博客主页:泥菩萨
💖专栏: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攻击场景
相关文章:

【网络安全的神秘世界】渗透测试基础
🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 渗透测试基础 基于功能去进行漏洞挖掘 1、编辑器漏洞 1.1 编辑器漏洞介绍 一般企业搭建网站可能采用了通用模板ÿ…...

【重学 MySQL】二十九、函数的理解
【重学 MySQL】二十九、函数的理解 什么是函数不同 DBMS 函数的差异函数名称和参数功能实现数据类型支持性能和优化兼容性和可移植性 MySQL 的内置函数及分类单行函数多行函数(聚合函数)使用注意事项 什么是函数 函数(Function)在…...

MySQL5.7主从复制搭建-gtid方式
环境准备 1、主机名和和IP地址如下 10.0.0.51 db01.ljbb.com 10.0.0.52 db02.ljbb.com 10.0.0.53 db03.ljbb.com2、配置文件 db01 [mysqld] usermysql basedir/app/mysql datadir/data/mysql/data socket/tmp/mysql.sock server_id51 port3306 secure-file-priv/tmp autoco…...

golang学习笔记22——golang微服务中数据竞争问题及解决方案
推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...

yolo训练出现Could not load library libcudnn_cnn_train.so.8问题及解决方法
问题场景: 训练yolov5或者yolov8时候会报错: Could not load library libcudnn_cnn_train.so.8. Error: /usr/local/cuda-12.1/lib64/libcudnn_cnn_train.so.8: uined symbol: _ZN5cudnn3cnn34layerNormFwd_execute_internal_implERKNS_7backend11Vari…...

携手科大讯飞丨云衔科技为企业提供全栈AI技术解决方案
作为智能时代的核心驱动力,人工智能不仅重塑了传统行业的面貌,更开辟了全新的经济增长点。科大讯飞以其深厚的技术底蕴和创新能力,持续引领着人工智能领域的发展潮流。云衔科技作为科大讯飞开放平台的AI技术产品线合作伙伴代理商,…...

57页PPT | 智慧文旅整体建设解决方案
主要介绍了智慧文旅的建设背景、需求分析、解决方案、应用系统功能需求、客户价值、企业价值、建设理念、建设思路、总体架构、安全管理体系、融媒体综合服务平台、大数据分析平台、智慧文旅云平台、智慧管理、智慧营销、智慧服务等方面的内容。 背景及需求分析 方案架构及理念…...

线性代数之QR分解和SVD分解
文章目录 1.QR分解Schmidt正交化Householder变换QR分解的应用 2. 求矩阵特征值、特征向量的基本方法3.SVD分解SVD分解的应用 参考文献 1.QR分解 矩阵的正交分解又称为QR分解,是将矩阵分解为一个正交矩阵Q和一个上三角矩阵R的乘积的形式。 任意实数方阵A,…...

在虚拟机安装mysql数据库
一、安装步骤(下载包-传输软件包-安装包-启用仓库-使用yum安装服务器) 1、要在mysql官网下载yum仓库包 2、下载好rpm包后,将其通过xftp传输到root目录下 3、使用sudo yum install yum的仓库名(sudo yum install mysql-community-…...

详解QT插件机制
Qt插件机制允许将功能模块化为独立的插件,从而在运行时动态加载和卸载这些模块。这种机制对于扩展应用程序、插件架构和动态功能添加非常有用 插件机制 插件的基本概念 插件: 在Qt中,插件是实现特定接口的动态库(DLL或so文件),这些接口由Qt插件框架定义。插件可以被应用程序…...

【Hot100】LeetCode—32. 最长有效括号
目录 1- 思路题目识别动态规划 2- 实现⭐32. 最长有效括号——题解思路 3- ACM 实现 原题链接:32. 最长有效括号 1- 思路 题目识别 识别1 :给定一个字符串 s ,求解 s 中的最长有效括号 动态规划 动态规划五部曲 递推公式难如果遇到了 s.…...

力扣198-打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的…...

Python 入门教程(4)数据类型 | 4.1、数据类型
文章目录 一、数据类型1、弱类型与强类型2、变量没有类型,数据有类型3、不可变类型和可变类型 前言: Python 是一种高级编程语言,以其简洁的语法、丰富的内置库和动态类型系统而闻名。在 Python 中,数据类型是编程的基础ÿ…...

如何进行DAP-seq的数据挖掘,筛选验证位点
从样本准备到寄送公司,每一天都在“祈祷”有个心仪的分析结果,终于在这天随着邮件提示音的响起,收到了分析结果...... 分析前工作 爱基在进行数据分析之前,会有两次质控报告反馈给老师们。第一个,基因组DNA的提取质控…...

学习大数据DAY56 业务理解和第一次接入
作业1 1 了解行业名词 ERP CRM OA MES WMS RPA SAAS 了解每个系统的功能和应用 ERP 系统,(Enterprise Resource Planning,企业资源计划系统):ERP 系统 是一种用于管理企业各类资源的软件系统,包括生产管理…...

java线程池编程示例
程序功能 这段代码展示了如何使用 Java 线程池 来并发执行多个任务。通过创建一个固定大小为 3 的线程池,程序提交了 5 个任务,并让线程池中的线程并发处理这些任务。每个任务模拟了一个耗时操作,最后程序等待所有任务完成后关闭线程池。 …...

02 基于STM32的按键控制继电器驱动电机
本专栏所有源资料都免费获取,没有任何隐形消费。 注意事项:STM32仿真会存在各种各样BUG,且尽量按照同样仿真版本使用。本专栏所有的仿真都采用PROTEUS8.15。 本文已经配置好STM32F103C8T6系列,在PROTUES仿真里,32单片…...

网页本地存储
网页本地存储 <html> <script>//添加数据function add(){var text;textdocument.getElementById(text).value;indexlocalStorage.length1;localStorage.setItem(index,text);}//显示localStorage所有内容function showall(){storagelocalStorage;var length stor…...

SpringBoot2:web开发常用功能实现及原理解析-@ControllerAdvice实现全局异常统一处理
文章目录 前言1、工程包结构2、POM依赖3、Java代码 前言 本篇主要针对前后端分离的项目,做的一个统一响应包装、统一异常捕获处理。 在Spring里,我们可以使用ControllerAdvice来声明一些关于controller的全局性的东西,其用法主要有以下三点…...

DockerLinux安装DockerDocker基础
Linux软件安装 yum命令安装 通过yum命令安装软件,是直接把软件安装到Linux系统中 安装和卸载都比较麻烦,因为软件和系统是强关联的 Docker docker是一种容器技术,可以解决软件和系统强关联关系,使得软件的安装和卸载更方便,它可以将我们的应用以及依赖进行打包,制作出一个镜…...

macOS平台TensorFlow环境安装
1.安装xtarfile pip3 install xtarfile 2.安装 pip3 install matplotlib 3.安装jieba pip3 install jieba 4.安装 pip3 install tensorflow tensorflow安装成功...

全网最全 线程邮箱
线程邮箱的优缺点 优点 避免资源竞争:线程邮箱通过队列和互斥锁来管理线程间的通信,确保只有持有锁的线程可以访问和修改队列中的数据,从而避免了多个线程同时尝试修改同一资源时可能出现的竞争条件,减少了因资源竞争导致的死锁…...

Linux下rpm方式部署mysql(国产化生产环境无联网服务器部署实操)
请放心观看,已在正式环境部署验证,流程无问题! 所用系统为国产化麒麟银河 aarch64系统,部署时间2024年9月份! #查看服务器信息 #涉及生产服务器,所以输出信息隐藏了一部分[rootecs-xxxxx hdata]# uname -…...

【Python机器学习】NLP信息提取——正则模式
我们需要一种模式匹配算法,该算法可以识别与模式匹配的字符序列或词序列,以便从较长的文本字符串中“提取”它们。构建这种模式匹配算法的简单方法是在Python中,使用一系列if/else语句在字符串的逐个位置查找该符号(单词或字符&am…...

opc服务器与opc服务器如何通讯
OPC(OLE for Process Control,即过程控制对象链接)是一种工业自动化领域常用的通讯协议,它提供了一种标准化的方式,使得不同厂家的设备可以互相通讯。OPC服务器是运行在计算机上的软件程序,用于接收和处理来…...

指针 (六)
OK,书接上回,咱们继续: 一 . 函数指针变量 (1)函数指针变量的创建 首先我们得明白,什么是函数指针变量呢?从我们之前学习过的整型指针,数组指针的相关知识当中,通过类…...

Linux下vscode配置C++和python编译调试环境
Visual Studio Code (简称 VSCode) 是由微软开发的一款免费、开源、跨平台的代码编辑器。它支持 Windows、macOS 和 Linux 操作系统,并且内置对多种编程语言的支持,包括但不限于 C/C、Python、JavaScript、TypeScript、Java 和 Go 等。VSCode 主要用于编…...

OrionX GPU算力池助力AI OCR场景应用
01 AI OCR的历史及概念 OCR(Optical Character Recognition,光学字符识别)是指采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文…...

移动端如何实现智能语音交互
智能语音交互(Intelligent Speech Interaction)是基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会说、懂你”式的智能人机交互功能。适用于智能问答、智能质检、法庭庭审实时记录、实…...

HTTPS:构建安全通信的基石
HTTPS(Hypertext Transfer Protocol Secure),作为互联网上安全通信的基石,通过在HTTP基础上引入SSL/TLS协议层,实现了数据传输的加密,确保了信息的机密性、完整性和真实性。这一过程涉及多个精细设计的步骤…...