黑客联系 *** :指令注入新玩法:巧借环境进犯方针

访客4年前黑客工具488

在一次缝隙赏金活动中,发掘到一个不规范的指令注入缝隙,我无法用指令分隔符、指令替换符注入新指令让系统实行,所以,从”型态”上讲,它不算是指令注入缝隙;但我又可以凭借政策环境让载荷抵达系统指令行,完结读写文件、实行新指令,所以,”神态”来看,它又像是指令注入。这类凭借环境直接注入指令的运用办法,很少在惯例评论指令注入的文章中看到,有必要落笔成文,与你共享。

0×00 酷趣 wargame

因为受赏金厂商保密协议所限,我无法揭露原始缝隙概况,但我更清楚 “talk is cheap, show me the code”,耗时费心,找到一个 wargame,相较赏金缝隙,不光表现了相同精华,这个 wargame 还多了些束缚条件,所以,让它变得愈加风趣、更有应战。

我把 wargame 源码写入 CMDi_lab/escaping_quotation/index.php,中心如下:

快速过下源码。首要,用 GET 办法获取 f1、f2 两个参数;然后,用相同的正则过滤 f1、f2,包含过滤引号避免运用环境写 webshell,过滤常见指令分隔符(;)、指令替换符($())避免注入新指令,过滤常见指令(ls、cat)制止基础操作;接着,用引号再建一道防护工事,让全部输入均在引号内,让指令行元字符失效;终究,以 f1、f2 为指令参数实行系统指令 file。

怎么样!看上去是很完善的防护系统。先正常访问试试:

服务端实行 file 指令,正确辨认出目录和文件的类型。检验提交指令分隔符(;)和指令替换符(“):

因为服务端正则表达式匹配上 ; 和 “,导致提交的文件名被置为空,所以,file 提示无法找到相关文件。

经验主义,我将从三个层面寻觅突破口:侵犯正则、侵犯引号、侵犯指令行。那么,我就预备开动了,各位。

0×01 胜败正则

在指令注入场景下检查正则表达式,我习气重视四个方面:是否运用多行形式修饰符(/foo/m)、是否遗失匹配政策结尾的换行符(/^d+$/)、是否容许空白字符(s)、是否误写反斜杠匹配形式(//)。

运用多行形式修饰符。把多行形式用于匹配期望容许的字符时,就会存在逻辑问题。比方,如下代码:

本来期望只容许 xx.xx.xx.xx 格式的 IP 地址,因为运用多行形式,只需输入中某行满意条件即可,那么,我可以用换行符输入多行,榜首行满意要求 127.0.0.1、第二行任意内容,这样轻松绕过正则束缚:

本 wargame 未运用多行形式,所以不存在这个问题。

遗失匹配政策结尾的换行符。某些形式在匹配时会疏忽字符串末的换行符,而换行符本身又是一个有用的目录分隔符,将导致注入新指令。如下代码:

本意是过滤掉输入中非字母、数字外的其他全部字符,输入换行符试试:

公然被过滤了。但,若把换行符放至字符串结尾,正则反而无法匹配上:

这可风趣了,又能愉快地注入新指令了:

本 wargame 未能成功过滤掉换行符,但不是因为上面的原因。

容许空白字符。空白字符包含空格、换行符、水平制表符、笔直制表符等四个,指令注入的好朋友换行符也在其间。代码:

本意只容许字母、数字、空格等字符,但遗失了换行符,导致指令注入缝隙:

本 wargame 未能成功过滤掉换行符,但不是因为上面的原因。

误写反斜杠匹配形式。正则表达式本身是个字符串,并非直接传递给正则引擎,而是先由言语对字符串进行处理后再传递给正则引擎。我期望匹配上反斜杠(),逆向考虑下这个进程,因为反斜杠在正则引擎是个特别字符,所以 才能让正则引擎正确辨认到反斜杠 ;正则引擎之前, 通过言语的的字符串处理,因为反斜杠在字符串中也是特别字符,所以,一个 就得用 标明、两个 就得用 \ 标明。那么,凡是用正则表达式匹配斜杠,有必要得用 \。这是不具备原生字符串特性(r)的脚本言语的通病,是有一点绕。比方:

 

 

访问看看:

 

 

 

 

记住 wargame 也过滤了反斜杠,回过头看看,哇喔,确实误用了:

 

 

 

 

OK,在正则部分,因为误写匹配形式,我找到了漏网之鱼,反斜杠。怎么运用?不知道,走一步看一步。

 

 

0×02 引号逃逸

 

 

接着我来揣摩下 25、26 行。这两行意图很明晰,用引号包裹输入字符串,防范或许因正则过滤不严传递一些个特别字符到指令行环境,思路是对的,但作用就差强人意了。

 

 

载荷一旦进入引号内,都将退化成一般字符串,好无杀伤力,仅有破例,指令替换符(“ 或 $()),惋惜的是,指令替换符被正则严防死守,无法抵达 25、26 行。所以,下意识地想到,引号逃逸。

 

 

引号逃逸,意图是让输入跳脱至引号外,恢复特别字符的身份,而不再被引号所捆绑,仅仅是个一般字符。我常用两种办法,一是闭合、二是转义。

 

 

闭合办法逃逸引号。在输入中添加一个引号,让其与左引号结对,天然闭合,接着输入中就能出现歹意字符,终究输入中再添加一个引号,与右引号结对,或许,输入注释符以疏忽右引号。比方:

 

 

 

 

我的全部输入都只S7-300:能留在引号内,导致指令分隔符无法被指令行正确辨认:

 

 

 

 

我在输入中添加两个引号(②、③),这样刚好与代码中的引号闭合(① 和 ②、③ 和 ④),所以,我的其他输入字符(;id;)就能出现在引号之外,成功逃逸引号:

 

 

 

 

转义办法逃逸引号。引号本身也是个特别字符,如果有办法让它变成一般字符,那么输入的其他特别字符就能让指令行正确辨认。反斜杠可以办到!如下代码:

 

 

 

 

含有歹意字符的输入被限定在引号内:

 

 

 

 

假定服务端生成的指令模型为 file “foo” “;date”,这时,我运用反斜杠将 ② 号引号转义为一般字符,那么 ① 和 ③ 号引号将天然结合,接着运用注释符将 ④ 号引号注释掉,;date 关于指令行直接可见,逻辑上我能用 file “foo” “;id #bar” 注入任意指令,再次逃逸到引号外:

 

 

 

 

注,注释符 # 需求 URL 编码为 %23。

 

 

好了,还记住前面我找到正则缝隙无法过滤反斜杠么,wargame 中的引号现已无法捆绑我,尽管当下无法直接运用,但至少又让我向前迈出一步。

 

 

0×03 选项注入

 

 

持续看 29、30 两行的指令实行代码。明显这与指令注入缝隙多少有些联系。指令注入常见三种办法:运用指令分隔符注入指令、运用指令替换符Get-ServiceUnquoted注入指令、运用指令选项注入指令。

 

 

指令分隔符注入指令。指令分隔符包含换行符(n)、分号(;)、逻辑与(&&、&)、逻辑或(||、|),若在 win 批处理脚本中还能用 %1A。比方:

 

 

 

 

指令替换符注入指令。shell 优先实行指令替换符内的指令,意图是便于运维人员将前个指令的输出作为后个指令的输入。指令替换符包含 $(…)、反引号 `…`。比方:

 

 

 

 

指令选项注入指令。指令选项(option)和指令参数(argument)是两个概念,国内外许多文献都将他俩混杂。比方:

 

 

 

 

其间,-d 是指令选项、/tmp/ 是指令参数。许多时分,蓝队过滤掉全部指令分隔符、指令替换符,尽管我无法直接注入指令,但我可以注入其他指令选项,这就给我很大想像空间,某些选项可以读取文件、有些又能写入文件、乃至实行其他指令。比方,有个页面,可以将 web 目录打包为你指定的归档文件,输入为归档文件名 $archive 参数,服务端过滤全部指令注入相关字符,调用 system(“tar -cf” . $archive . “*”) 实行指令:

 

 

 

 

但我通过注入 tar 指令的 –checkpoint、–checkpoint-action=exec 两个选项,成功实行指令 id:

 

 

 

 

wargame 中实行的是 file 指令,检查下它有哪些用得上的选项,比方,是否有选项可以读文件,man 中搜索 read,找到 -f 选项:

 

 

 

 

细心看下,该参数并不能读取显现文件内容,仅仅从该文件中获取文件列表,没意思(。・_・。)。等等,报错信息中有啥提示:

 

 

 

 

哇噢,历害啦,通过注入指令选项 -f,让我可以读取 wargame 的文件内容。

 

 

0×04 全面分裂

 

 

管它金城汤池仍是固若金汤,一颗松滑螺钉,它将全面分裂。

 

 

将多个独立缝隙组合成缝隙链,完结政策侵犯,肯定是我的 G 点。回忆前面的效果,因为误写正则表达式,导致无法过滤反斜杠;通过反斜杠,可以逃逸引号;通过引号逃逸,创造出指令选项注入的条件;通过注入 -f 选项,完结 flag 文件读取。过滤反斜杠的正则,就是那颗松滑的螺钉。

 

 

现在,侵犯政策前,还剩一个问题,我并不清楚 flag 文件途径及文件名。首要想到的是暴破。土!确实很土气,用常见的 flag、FLAG、f14g 等等常见 flag 名暴了一遍,毫无收成。换个办法,通配符形式匹配。这下洋气了吧。

 

 

通配符形式匹配(globbing patterns),也叫途径名扩展(pathname expansion),简略来说,在标明文件名/目录名或途径时,你可以用 ? 代表任一可见字符、用 * 代表零或多个可见字符、用 [a-z] 代表字符规模,仅有破例,以 . 开始的文件或目录、以 / 分隔的途径有必要显式写明,不然无法被形式匹配。

 

 

比方,我并不还知道 /tmp/ 目录下有个名为 FindMe 的文件,但,凭借通配符屡次检验,不光探听出该文件的存在,还成功检查到文件内容:

 

 

 

 

好,现在全部安排妥当,侵犯 CMDi_lab/escaping_quotation。有了前面的分析,我结构了载荷 f1=foo&f2=-f ? bar #,将 file “foo” “bar” 转换为 file “foo” “-f ? bar #”,猜解文件名只要一个字符的文件:

 

 

 

 

明显,没找到这样的文件,相同思路,凭借 burp 主动查找文件名长度在 [1, 16] 的全部文件:

 

 

 

 

跑完仍是没有找到任何文件。这就奇怪了,前面说过,通配符无法匹配 .,难道是躲藏文件,调整下载荷, f1=foo&f2=-f .? bar #,再次暴破:

 

 

 

 

找到名为 .f1a9_ 的目录,持续调整载荷 f1=foo&f2=-f .f1a9_/.? bar #,暴破:

 

 

 

 

找到名为 .f1a9_/.flag_15_here.txt 的文件,带上精确途径访问:

 

 

 

 

WTF!不应该啊,逻辑上说不通。别急,捋一捋,难道载荷中新增部分有被过滤的字符?回到前面的正则源码处,确实过滤了 flag 关键字,我用通配符替换,载荷变成 f1=foo&f2=-f .f1a9_/.fl?g_15_here.txt bar #,别的,指令选项 -f 前应该得加个空格,终究载荷为 f1=foo&f2= -f .f1a9_/.fl?g_15_here.txt bar #,来一发:

 

 

 

 

多么愉悦的侵犯体会!

 

 

0×05 非预期解法

 

 

丝滑般的思绪,真实而天然!思绪天然?!正则未正确过滤反斜杠、运用反斜杠逃逸引号、通配符形式猜解途径、注入指令选项读取文件,造作、别扭!以上是我为了凑字数、增篇幅写的,真实的侵犯办法并非如此。

 

 

细心审计正则过滤的代码。用 而非 \ 表述反斜杠,不只无法正确过滤反斜杠,还会引发连锁反应。你看,紧随 这以后的是 |n:

 

 

 

 

前面提过, 效果字符串转义后抵达正则引擎变成 ,它与 |n 结合变成 |n,正则引擎误解成匹配竖线与换行符的组合。当我输入竖线与换行符的组合,承认被过滤:

 

 

 

 

换言之,服务端只过滤 |n 而放行 n。有换行符,我可以直接注入新指令,比方,实行指令 id:

 

 

SetProcessMitigationPolicy(ProcessSignaturePolicy, &sp, sizeof(sp)); 

 

已然能注入指令了,检查 flag 一挥而就!指令 grep -r . . 可以检查其时目录下全部文件内容,服务端过滤了 grep,我用内部空变量轻松绕过(g$1rep -r . .),或许,无效转义绕过(grep -r . .),或许,通配符绕过(/bin/gr?p -r . . 或 /bin/gr[d-f]p -r . .),我有 1024 种办法吊打政策。

 

 

OK,明晰,争夺一次搞定,结构载荷 ?f1=foo&f2=%0a/bin/gr[d-f]p+-r+.+.+%23,页面显现:

 

 

 

 

0×06 故事结尾

 

 

终究聊聊你关怀的赏金缝隙。大致事务场景,服务端实行打包指令紧缩几个固定目录,容许用户输入归档文件名,屡次探听承认运用的 zip 指令,相似:

 

 

 

 

其间,归档文件名 archive.tar 可控。服务端正则过滤全部指令分隔符、指令替换符、其他元字符,一同,制止出口流量,明显无法直接注入指令。

 

 

一番检验,发现容许横线(-),这就告诉我可以注入指令选项。我开端分析环境 zip 本身有哪些选项可以为我所用。先查找关键字 execute,一无所得;接着搜索关键字 command,找选项 –unzip-command(简写 -TT) 和 –test(简写 -T),容许用户指定第三方程序来校验归档文件的完整性:

 

 

 

 

换言之,选项 -T 和 –unzip-command 可以注入新指令 id:

 

 

 

 

成功拿到赏金。

 

 

指令注入侵犯,除了惯例的指令分隔符、指令替换符之外,运用环境本身也能完结。

 

 

{

注一,wargame 的原型来自 Kaibro 所写的 wargame,见 http://final.kaibro.tw:10002/;

注二,escaping_quotation 源码,以及更多指令注入相关 wargame 见 https://github.com/yangyangwithgnu/CMDi_lab

 

*本文作者:yangyangwithgnu,本文属 FreeBuf 原创奖赏方案,未经许可制止转载。

   
 

黑客联系 *** :指令注入新玩法:巧借环境进犯方针

credentials = []则登录时就可以访问远程的服务器。当登陆一个歹意结构的Mysql服务器时,即可运用load data infile读取该服务器上的任意文件。当然前提条件是secure_file_priv参数容许的目录下,且phpmyadmin的用户对该文件有读的权限。首要,我们需求了解束缚写入原语,它可以帮忙侵犯者成功设置一个NULL页面,这也是运用该缝隙的基础。缝隙触发后,win32k.sys中的xxxMNUpdateDraggingInfo()将会被调用,假设NULL页面设置正确,那么xxxMNUpdateDraggingInfo()将会调用xxxMNSetGapState(),相关代码如下:命令注入新玩法:巧借环境攻击目标

黑客联系 *** .core_ *** ytics文件中包含 *** ON记载,这些记载可以标明程序实行前史及时间戳信息,时间戳可以划出前史数据所对应的特定确诊周期。这些文件位于/Library/Logs/DiagnosticReports/目录中,文件名选用Analytics_YYYY_MM_DD_HHMMSS_<systemname>.core_ *** ytics格式。文件名中的时间戳依据的是系统的本地时间信息。在10.13版别之前,DiagnosticReports目录只包含程序缺点及溃散陈说,现在,不论程序是否溃散,该目录中都会包含与程序实行有关的数据。Merry Christmas!归纳一下就是简略的一句话:手机遇主动比对挨近的基站信号,选择最强的那个恳求接入,而“伪基站”是来者不拒的。Mandatory LabelMedium Mandatory Level Label S-1-16-8192

C1831BAA5505F5A557380E0AB3F60F48运用该办法,无需在用户办法下建议可工作文件(当然某些Microsoft署名的可工作文件在外)或加载已署名的驱动程序。是以,PatchGuard和其他保护脚步也无法阻遏我们。 经由进程该办法,我们会将代码直接放入内核内存空间中,然后经由进程hook一些线程来工作它。正如我们将演示的那样,由一个简略的批处理文件构成的歹意软件将可以或许跳转到内核,经由进程当地内核调试技巧和windbg使其代码得以在内核中工作。 效果我们也可以将其转换为表格的办法,以便于我们的阅览。黑客联系 ***

图91.裁决ID(Arbitration ID):裁决ID是一种广播消息,代表的是需求进行数据通讯的设备ID,不过一台设备可以发送多个裁决ID。假设两个CAN数据包一同在总线上进行发送,那么裁决ID较小的那个数据包将优先传输;0xffffffffa013d0e0 35> mov %rax,-0x10(%rbp) [save req struct address to -0x10(%rbp)]

[留心:代码的注入进程可在IOS9.3,10.0.2以及XCode v7.3和v8.0环境下正常工作,其他IOS系统或Xcode版别没有检验]>localadmin rdp-tcp#55 2 Active . 3/12/2017 3:10 PM为了完全完结CFG,编译器和操作系统都有必要支撑它。作为系统层面的运用缓解办法,CFG的完结需求联合编译器、操作系统用户层库和内核模块。MSDN上面的一篇文章描述了支撑CFG开发者需求做的进程。命令注入新玩法:巧借环境攻击目标

黑客联系 *** -trigger 标明主题中你想用来触发规则的指令医院将成为 *** 侵犯的下一政策一、介绍从以下输出可以看出,至少有5500个PLC可供运用。

本文行将归纳Android各个版别可以运用的检测其时工作的APP的办法,及趁便webview的劫持示例。假设你发现你爆破出了FTP的账号和暗码,但是联接却没有一些权限,很或许就是处理员在这儿的权限设置问题。注:默许配备不会有写入权限,但是处理员底子都会配备写入权限,便于远程处理。FTP运用1.FTP账号暗码一定是系统用户的账号和暗码。可以不必是处理员权限。2.FTP开始在配备时假设容许匿名登录,会出现如下账号可联接的情况,用户名 ftp 暗码ftp@ftp.net用户名 anonymous 暗码anonymous@anonymous.net但是连上底子没有权限,大部分情况,一个目录都看不到。3.联接方面,底子有三种办法。3-1.通过本地磁盘联接,在文件夹上的目录栏输入 ftp://政策IP:端口 如图4↓

尤其是通讯录运用,一旦运用程序支撑备份和恢复功用,侵犯者即可通过adb backup和adb

当我知道到我取得了真实可用的GitHub主域名的SSL/TLS的时分,我觉得真是太荒唐了。Https的本意,是为防范被偷听和监控,但是,有了这些key,我却相对简略的成为了可以建议侵犯的中间人。

黑客联系 ***

“有传闻称FBI要求为期两周发布陈说,仅24小时之后就将这项技术作为秘要。FBI不会将不经验证的东西作为秘要,因此就是说FBI现已进行了验证。因此这项技术很或许是一个EXP。”运用办法:分析发现,cacheflush_register和cacheflush_deregister都是盘绕QSEE系统调用的简略的封装程序:  3)LinkedIn命令注入新玩法:巧借环境攻击目标

几年前,海盗行为每日都在表演,几乎每天都有相关新闻报导。因此,民族国家和渔业、船运公司抉择派遣戎行或许雇佣军,去保护他们的船队。 }实行办法:每个“配对成功”都会发生一个50个字母数字构成的字符串ID。每个配对ID包含了用户两头的ID,而摆放次序取决于谁先“喜欢”谁。但是,这并没有得到详尽的检验进行证明。除此之外,在表ZMATCH中找到了创建“配对成功”的时间戳。
本文标题:黑客联系 *** :指令注入新玩法:巧借环境进犯方针

相关文章

新手开淘宝网店怎么开(如何注册淘宝网店步骤)

  目前,网上卖东西早就变为一种发展趋向,这不仅方便快捷,而且节省了租用店面的花销。那么你如何在开淘宝网店呢?使大家看一下它。   最开始,你尽量有一个淘宝号。   A.在浏览器具体地址输入框中输入t...

苹果手机怎么查看他人手机微信内容

坚果富含着丰富的不饱和脂肪酸,能给宝宝提供多种营养素。但是有 的宝宝对坚果过敏,因此很多家长等到宝宝一岁之后才开始给宝宝添加坚果。其实只需要控制好量宝宝是不会过敏的。那么宝宝吃坚果要注意什么呢想下面...

黑客帝国配乐视频(黑客帝国经典)

黑客帝国配乐视频(黑客帝国经典)

本文导读目录: 1、英国达人秀黑客帝国舞蹈的这音乐 点评时流泪的那个背景音乐叫什么名字?急需,我感动死了! 2、黑客帝国的背景音乐 3、关于《黑客帝国动画版》的配乐? 4、求黑客帝国1枪战...

情人节礼物送什么给女朋友最适合(送女性朋友

情人节礼物送什么给女朋友最适合(送女性朋友

1、围巾 - 我永远爱你。 2、信 - 我想念你。 3、花儿 - 我希望把我的名字放在你的心上。 4、书 - 我相信你很聪明。 5、口香糖 - 我希望跟你交往得很久。 6、香烟 - 我讨...

刻板印象下写的文案,怎能刺激到用户?

刻板印象下写的文案,怎能刺激到用户?

当文案人用刻板印象来筹划产物的受众时,产物自然也会被用户用刻板印象来评价,难以刺激到用户的消操心理。 刻板印象是演化进程下的产品,好听点说法叫履历、叫分明看人。 逆耳点的说法,就是贴标签、阶层分类。...

印度黑客组织趁火打劫(印度抢劫案)

印度黑客组织趁火打劫(印度抢劫案)

本文导读目录: 1、跌宕起伏的剧情从来都很吸引人,有哪些情节多次反转的剧? 2、中国正在遭受疫情肆虐的情况下,印度对中国做了哪些落井下石的事情? 3、世界顶级人才组成的犯罪团伙抢劫一整火车的金...