exploit-db-mirror/exploits/windows/dos/17164.txt
Offensive Security ed0e1e4d44 DB: 2018-09-25
1979 changes to exploits/shellcodes

Couchdb 1.5.0 - 'uuids' Denial of Service
Apache CouchDB 1.5.0 - 'uuids' Denial of Service

Beyond Remote 2.2.5.3 - Denial of Service (PoC)
udisks2 2.8.0 - Denial of Service (PoC)
Termite 3.4 - Denial of Service (PoC)
SoftX FTP Client 3.3 - Denial of Service (PoC)

Silverstripe 2.3.5 - Cross-Site Request Forgery / Open redirection
SilverStripe CMS 2.3.5 - Cross-Site Request Forgery / Open Redirection

Silverstripe CMS 3.0.2 - Multiple Vulnerabilities
SilverStripe CMS 3.0.2 - Multiple Vulnerabilities

Silverstripe CMS 2.4 - File Renaming Security Bypass
SilverStripe CMS 2.4 - File Renaming Security Bypass

Silverstripe CMS 2.4.5 - Multiple Cross-Site Scripting Vulnerabilities
SilverStripe CMS 2.4.5 - Multiple Cross-Site Scripting Vulnerabilities

Silverstripe CMS 2.4.7 - 'install.php' PHP Code Injection
SilverStripe CMS 2.4.7 - 'install.php' PHP Code Injection

Silverstripe Pixlr Image Editor - 'upload.php' Arbitrary File Upload
SilverStripe CMS Pixlr Image Editor - 'upload.php' Arbitrary File Upload

Silverstripe CMS 2.4.x - 'BackURL' Open Redirection
SilverStripe CMS 2.4.x - 'BackURL' Open Redirection

Silverstripe CMS - 'MemberLoginForm.php' Information Disclosure
SilverStripe CMS - 'MemberLoginForm.php' Information Disclosure

Silverstripe CMS - Multiple HTML Injection Vulnerabilities
SilverStripe CMS - Multiple HTML Injection Vulnerabilities

Apache CouchDB 1.7.0 and 2.x before 2.1.1 - Remote Privilege Escalation
Apache CouchDB 1.7.0 / 2.x < 2.1.1 - Remote Privilege Escalation

Monstra CMS before 3.0.4 - Cross-Site Scripting
Monstra CMS < 3.0.4 - Cross-Site Scripting (2)

Monstra CMS < 3.0.4 - Cross-Site Scripting
Monstra CMS < 3.0.4 - Cross-Site Scripting (1)
Navigate CMS 2.8 - Cross-Site Scripting
Collectric CMU 1.0 - 'lang' SQL injection
Joomla! Component CW Article Attachments 1.0.6 - 'id' SQL Injection
LG SuperSign EZ CMS 2.5 - Remote Code Execution
MyBB Visual Editor 1.8.18 - Cross-Site Scripting
Joomla! Component AMGallery 1.2.3 - 'filter_category_id' SQL Injection
Joomla! Component Micro Deal Factory 2.4.0 - 'id' SQL Injection
RICOH Aficio MP 301 Printer - Cross-Site Scripting
Joomla! Component Auction Factory 4.5.5 - 'filter_order' SQL Injection
RICOH MP C6003 Printer - Cross-Site Scripting

Linux/ARM - Egghunter (PWN!) + execve(_/bin/sh__ NULL_ NULL) Shellcode (28 Bytes)
Linux/ARM - sigaction() Based Egghunter (PWN!) + execve(_/bin/sh__ NULL_ NULL) Shellcode (52 Bytes)
2018-09-25 05:01:51 +00:00

116 lines
No EOL
4 KiB
Text

#######################################################################
Luigi Auriemma
Application: Microsoft Reader
http://www.microsoft.com/reader
Versions: <= 2.1.1.3143 (PC version)
the Origami 2.6.1.7169 version doesn't seem vulnerable
the non-PC versions have not been tested
Platforms: Windows, Windows Mobile, Tablet PC and UMPC devices
Bug: writing of NULL byte in arbitrary location
Date: 11 Apr 2011
Author: Luigi Auriemma
e-mail: aluigi@autistici.org
web: aluigi.org
#######################################################################
1) Introduction
2) Bug
3) The Code
4) Fix
#######################################################################
===============
1) Introduction
===============
Microsoft Reader is a software needed to read and catalog the ebooks in
LIT format and the Audible audio books bought via internet, indeed the
homepage acts also as online store for these protected contents.
#######################################################################
======
2) Bug
======
Possibility to write a 0x00 byte in an arbitrary memory location.
From aud_file.dll (base address 5fff0000):
5FFF634A >|> 8D47 01 |LEA EAX,DWORD PTR DS:[EDI+1] ; size at offset 0xbd of the PoC
5FFF634D |. 50 |PUSH EAX
5FFF634E |. E8 2B470000 |CALL <JMP.&MSVCRT.??2@YAPAXI@Z> ; malloc
5FFF6353 |. 57 |PUSH EDI
5FFF6354 |. 50 |PUSH EAX
5FFF6355 |. FF75 08 |PUSH DWORD PTR SS:[EBP+8]
5FFF6358 |. 8945 F8 |MOV DWORD PTR SS:[EBP-8],EAX
5FFF635B |. E8 58460000 |CALL <JMP.&utils.?read_bytes@TypeIO@@SA> ; read
5FFF6360 |. 8B45 F8 |MOV EAX,DWORD PTR SS:[EBP-8]
5FFF6363 |. 83C4 10 |ADD ESP,10
5FFF6366 |. 802438 00 |AND BYTE PTR DS:[EAX+EDI],0 ; place the delimiter (all ok)
5FFF636A |. 807D FF 00 |CMP BYTE PTR SS:[EBP-1],0
5FFF636E |. 75 5B |JNZ SHORT aud_file.5FFF63CB
5FFF6370 |. 8D46 01 |LEA EAX,DWORD PTR DS:[ESI+1] ; size at offset 0xc1 of the PoC
5FFF6373 |. 50 |PUSH EAX
5FFF6374 |. E8 05470000 |CALL <JMP.&MSVCRT.??2@YAPAXI@Z> ; now malloc will return NULL
5FFF6379 |. 8BD8 |MOV EBX,EAX
5FFF637B |. 56 |PUSH ESI
5FFF637C |. 53 |PUSH EBX
5FFF637D |. FF75 08 |PUSH DWORD PTR SS:[EBP+8]
5FFF6380 |. E8 33460000 |CALL <JMP.&utils.?read_bytes@TypeIO@@SA> ; read
5FFF6385 |. 802433 00 |AND BYTE PTR DS:[EBX+ESI],0 ; exploitation
The first allocation must succeed to avoid problems during the
reading operations (like memcpy on 0x00000000).
Note that is not possible to exploit the visible integer overflow
caused by malloc(size + 1) because the function that reads the data
goes in endless loop, yeah bad.
The provided proof-of-concept first tries to allocate 0x44000000 bytes
and it should succeed without problems and then will try to allocate
the second size that MUST fail so that is possible to use the size
value as an arbitrary memory offset.
Modified bytes in the proof-of-concept:
000000BD 00 43 ; first size needed to steal memory to the next size
000000BE 00 FF
000000BF 00 FF
000000C0 0A FF
000000C1 00 61 ; second size, will try to write 0x00 at address 0x61616161
000000C2 00 61
000000C3 00 61
000000C4 16 61
#######################################################################
===========
3) The Code
===========
http://aluigi.org/poc/msreader_5.zip
https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/17164.zip
#######################################################################
======
4) Fix
======
No fix.
#######################################################################