从get请求中获取了orderfield赋值给$orderfield并且只使用trim()函数进行了处理,这里明显是有问题的。
继续往下跟进发现传进了fetch_by_get函数的第3个参数:
继续跟进fetch_by_get函数,文件路径在:/Users/striker/www/discuz3/upload/source/plugin/jameson_read/table/table_jamesonread_books.php第120行:
发现将$orderfield直接传入了Discuz自带的DB::fetch_all函数中执行,我们继续跟进fetch_all函数:
这个函数将sql语句又传入到self::query函数:
这个函数又调用了self::format()进行格式化语句:
这个函数首先判断了%出现的次数,如果没有出现则扔出错误。
然后写两个一个while循环来拼接sql语句,查找百分号后面的字母,我们这里的$orderfield传入时是%i所以我们只关注这个分支:
如果百分号后面是i的话,就直接拼接带入进去,没有进行其他的处理。
最终format函数返回了拼接后的sql语句。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
继续往下跟进发现传进了fetch_by_get函数的第3个参数:
继续跟进fetch_by_get函数,文件路径在:/Users/striker/www/discuz3/upload/source/plugin/jameson_read/table/table_jamesonread_books.php第120行:
发现将$orderfield直接传入了Discuz自带的DB::fetch_all函数中执行,我们继续跟进fetch_all函数:
这个函数将sql语句又传入到self::query函数:
这个函数又调用了self::format()进行格式化语句:
这个函数首先判断了%出现的次数,如果没有出现则扔出错误。
然后写两个一个while循环来拼接sql语句,查找百分号后面的字母,我们这里的$orderfield传入时是%i所以我们只关注这个分支:
如果百分号后面是i的话,就直接拼接带入进去,没有进行其他的处理。
最终format函数返回了拼接后的sql语句。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
用户名可以由 128 个 ASCII 字符中的任意一个组成,但不能是
使用 SMTP 而不是 FTP。请注意,由于历史原因,这两种协议在结构上非常相似。例如,连接时,它们都会发送一个包含 220 代码和文本的回复:
因此,如果我们
使用此 URL 连接时
从 Java 的角度来看,“FTP”连接失败
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
\<CR>或 `\ <LF>`。你猜 JRE 的实现者们忘记了什么?没错,就是检查 `\ <CR>` 或 `\`是否存在<LF>。这意味着,如果我们%0D%0A在 URL 的用户名部分(或者密码部分)的任何地方输入 `\`,我们就可以终止 `USER`(或 `PASS`)命令,并将一个新的命令注入到 FTP 会话中。使用 SMTP 而不是 FTP。请注意,由于历史原因,这两种协议在结构上非常相似。例如,连接时,它们都会发送一个包含 220 代码和文本的回复:
因此,如果我们
USER向邮件服务器而不是 FTP 服务器发送命令,它会返回一个错误代码(因为USER这不是有效的 SMTP 命令),但允许我们继续会话。结合上面提到的漏洞,这使我们能够发送任意 SMTP 命令,从而发送电子邮件。例如,让我们将 URL 设置为以下内容:使用此 URL 连接时
sun.net.ftp.impl.FtpClient,以下命令将发送到 shiftordie.de 的邮件服务器:从 Java 的角度来看,“FTP”连接失败
sun.net.ftp.FtpLoginException: Invalid username/password,但邮件已经发送出去了。渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
我们知道该释放掉的内存块是位于堆空间上的,接下去就来看下它的分配。先在Gflags的设置中勾选“Create User Mode Stack Trace Database”这一项,我们要能够在同一堆区上分配相同大小的内存空间,这样才能满足堆喷的利用条件,因此需要确定释放的内存是分配在哪块堆上的。
通过下述HTML代码我们可以将特定的数据分配到IE的默认堆上:
然后借助WinDbg来看下堆分配的情况:
可以看到ActiveX控件和JavaScript代码使用了相同的堆区,因此利用起来就方便多了。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
通过下述HTML代码我们可以将特定的数据分配到IE的默认堆上:
然后借助WinDbg来看下堆分配的情况:
可以看到ActiveX控件和JavaScript代码使用了相同的堆区,因此利用起来就方便多了。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
通过查看下述代码,我们发现其中存在一条能导致代码执行的路径。首先,EDI+1Ch指向的内存值被存入到EAX寄存器,而后EAX指向的内存值又被赋值给了ESI寄存器,再往下程序会执行一些其它操作和函数调用并最终来到ESI+4指向的地址。
我们需要确保13e70cb5处的函数调用不会改变ESI寄存器的值,这样上面找到的执行路径才是可控的。下述的WinDbg调试过程给出了如何分配新的内存空间来替换释放掉的内存块,并通过单步跟踪来确认此路径能导致代码的执行。
这表明如果能在释放掉的内存块中写入我们精心构造的数据,那么就能将此漏洞转换成可利用的代码执行。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
我们需要确保13e70cb5处的函数调用不会改变ESI寄存器的值,这样上面找到的执行路径才是可控的。下述的WinDbg调试过程给出了如何分配新的内存空间来替换释放掉的内存块,并通过单步跟踪来确认此路径能导致代码的执行。
这表明如果能在释放掉的内存块中写入我们精心构造的数据,那么就能将此漏洞转换成可利用的代码执行。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
由分析可知该控件并没有通过实现IObjectSafetySiteLock接口来将其锁定到特定域名。
然而,测试表明该控件仅适用于特定的Google域名。既然它没有使用IObjectSafetySiteLock,我接着又检查其是否被注册成IE中的Browser Helper对象,这样可以获取navigation事件,通过逆向调试发现确是如此。因此,由导出的IObjectWithSite接口控件可创建与IE的连接,借此就能得到当前访问的URL信息了。
通过下述C++代码,我们创建该控件的一个实例,并在调用IObjectWithSite-> SetSite()前插入一个断点:
这样我们就可以在调试器中定位到此函数的入口信息,然后在IE中的相同位置下断,并借助HTML代码来加载和调用该控件。
分析可知,控件通过对象传递来实现SetSite供IE调用,如下代码为其中的一部分实现,这里的URL信息由ECX寄存器传递:
通过对此函数的更进一步分析我们可以找到将当前域名和白名单中的域名进行比较的代码段:
我们可以在调试器中下断来打印出所有的白名单域名:
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
然而,测试表明该控件仅适用于特定的Google域名。既然它没有使用IObjectSafetySiteLock,我接着又检查其是否被注册成IE中的Browser Helper对象,这样可以获取navigation事件,通过逆向调试发现确是如此。因此,由导出的IObjectWithSite接口控件可创建与IE的连接,借此就能得到当前访问的URL信息了。
通过下述C++代码,我们创建该控件的一个实例,并在调用IObjectWithSite-> SetSite()前插入一个断点:
这样我们就可以在调试器中定位到此函数的入口信息,然后在IE中的相同位置下断,并借助HTML代码来加载和调用该控件。
分析可知,控件通过对象传递来实现SetSite供IE调用,如下代码为其中的一部分实现,这里的URL信息由ECX寄存器传递:
通过对此函数的更进一步分析我们可以找到将当前域名和白名单中的域名进行比较的代码段:
我们可以在调试器中下断来打印出所有的白名单域名:
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
Chrome 浏览器上不再有效。这是因为 Chrome 团队最近对这项史上最出色、最相关的网络技术缺乏应有的重视,但我们依然团结一致,高呼:让 Flash 再次伟大!
图二是我们用于烧录 Flash 的 AS 代码:
该模型方案首先通过 CSS 泄露令牌,并用空字节进行填充。然后,它从 DOM 中提取该值,并用它来请求路径页面,创建一个过长的引用页,导致 jQuery CDN 崩溃。接下来,DOMXSS 攻击发生,你可以安装一个 SWF 格式的服务工作线程,该线程会利用宽松的crossdomain.xml文件获取密钥。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM
图二是我们用于烧录 Flash 的 AS 代码:
该模型方案首先通过 CSS 泄露令牌,并用空字节进行填充。然后,它从 DOM 中提取该值,并用它来请求路径页面,创建一个过长的引用页,导致 jQuery CDN 崩溃。接下来,DOMXSS 攻击发生,你可以安装一个 SWF 格式的服务工作线程,该线程会利用宽松的crossdomain.xml文件获取密钥。
渗透爬虫软件 资源采集 劫持域名 提取抓料子 六合·色站·彩票·博彩·金融 接渗透拿站,各大网站数据-拖库-提权联系 域名劫持 DNS 入侵网站 联系:@hacker_HouZiM