*** ON Hijacking系统漏洞的详尽利用,有点儿相近与CSRF,但是基本原理利用 *** 不一样,在这里文章内容我主要解读json跨域被劫持的利用自然环境构建与 *** 。
一般发掘的全过程中,burpsuite *** 商的History做找寻,过虑不必要不太可能存有系统漏洞的一些连接,如下图所显示:
我们在回到库中json文件格式发觉了以下的比较敏感信息内容(客户Id,登录名,客户手机号)。
递交系统漏洞,poc在众测时要分秒必争,因此 这里用了最精减的一个POC。
倘若回到的数据信息为:
txf({“data”:{“name”:”唐晓峰”}});
就可以以下弹出窗口:
1.提前准备一台web服务器,我立即phpstudy搭的。
另附服务端的编码
把垂钓连接http:/垂钓.html发送给该网址已登录的客户,如社区论坛,小区 *** 群,小区百度贴吧等,服务器端就可以获得到很多客户隐秘数据。
这里以hackone的一个新项目为例子:
由于这一事例是小伙伴们发来的还没有修补,因此 都抗过敏了,大家再从开发设计修补的视角去思索怎样绕开修补。
1.Referer授权管理
二级域名绕开,文件夹名称绕开,空Referer绕开
2.提升token验证
token充足繁杂或是服务器端数据加密,我们无法绕开,假如token非常简单,如纯数据,我们可以试着解析xml绕开
3.插口禁止使用
超级的实际操作,没法绕开
十分有趣的一个被劫持,之前沒有利用过,仅仅了解有那么个物品,一般众测或是新项目上碰到我全是立即截屏,声明一波比较敏感数据泄露,随后就结束了,很低危,此次实战演练利用以后,略微提升了一点高级感。
近期在科学研究PHP一句话侧门,查看了许多 巨头的blog,并从这当中衍化出了一些能用的方式 。
现小结以下:
回调函数:Callback (即call then back 被主调用函数计算后会回到主函数),就是指根据涵数参数传递到其他编码的,某一块可实行编码的引入。
已被D盾查杀的涵数:
array_filter()
array_walk()
array_walk_recursive()
array_map()
registregister_shutdown_function();
filter_var()
filter_var_array()
uasort()
uksort()
array_reduce() 异常(等级2)
array_walk()
array_walk_recursive()
结构一句话:
浏览URL:
IP/XXX.phpe=YXNzZXJ0
登陆密码:a
试着效仿一切正常调用函数,界定一个简易的function:
应用D盾查杀。
0ops!未过!自变量$exec被分析变成$GET["id"],但$evil沒有被分析,猜想要是将$exec放到newSearch()涵数外边用GET方式 获得,就不容易被D盾分析,撰写新的shell:
OK!极致绕开!
浏览URL:
IP/XXX.phpid=YXNzZXJ0
登陆密码:key
一样的方式 能够 应用涵数,结构shell以下:
用同样的方式 结构应用array_udiff()的shell:
浏览URL:
IP/XXX.phpexec=YXNzZXJ0
登陆密码:key
剩余的回调函数还可以用同样的方式 绕开D盾。
session_set_save_handler涵数能够 界定客户级的session储存涵数(开启、储存、关掉),在我们想把session储存在当地的一个数据库查询里时,本涵数就很有效了。
撰写shell以下:
应用D盾查杀。$session被分析为assert,猜想D盾觉得该涵数的主要参数中不应该带有assert等比较敏感涵数,不然就挂了!把$session用GET输入试一下:
来看要是主要参数中带有比较敏感涵数、GET、POST、REQUEST都是会出错!
试着建立一个客户涵数,在涵数中启用session_set_save_handler(),并将assert做为主要参数传到:
极致绕开!
浏览URL:
IP/XXX.phpid=YXNzZXJ0
登陆密码:op
*文中原原创者:Gxian
在一次系统漏洞悬赏金主题活动中,发掘到一个不规范的命令引入系统漏洞,我没法用命令分隔符、命令更换符引入新命令让系统软件实行,因此 ,从”特性”上讲,它算不上是命令引入系统漏洞;但我又能够 依靠总体目标自然环境让荷载抵达系统软件命令行,完成读写能力文档、实行新命令,因此 ,”神情”看来,它又好像命令引入。这类依靠自然环境间接性引入命令的利用技巧,非常少在基本探讨命令引入的文章内容中见到,必须下笔成小短文,与你共享。
因为受悬赏金生产商保密协议书限制,我没法公布初始系统漏洞详细信息,但我更清晰 “talk is cheap, show me the code”,用时费心,寻找一个 wargame,相较悬赏金系统漏洞,不仅最能体现同样精粹,这一 wargame 还多了些限定标准,因此 ,让它越来越更为趣味、更有挑戰。
我将 wargame 源代码载入 CMDi_lab/escaping_quotation/index.php,关键以下:
迅速过下源代码。更先,用 GET 方式 获得 f1、f2 2个主要参数;随后,用同样的正则过虑 f1、f2,包含过虑引号避免 利用自然环境写 webshell,过虑普遍命令分隔符(;)、命令更换符($())避免 引入新命令,过虑普遍命令(ls、cat)严禁基本实际操作;然后,用引号再建一道防御工事,让全部输入均在引号内,让命令行元字符无效;最终,以 f1、f2 为命令主要参数实行系统软件命令 file。
如何!看起来是很健全的防御力管理体系。先一切正常浏览试一下:
服务器端实行 file 命令,恰当鉴别出文件目录和文档的种类。试着递交命令分隔符(;)和命令更换符(“):
因为服务器端正则关系式配对上 ; 和 “,造成递交的文件夹名称被置为空,因此 ,file 提醒无法找到有关文档。
实用主义,我将从三个方面找寻突破点:进攻正则、进攻引号、进攻命令行。那麼,我也提前准备启动了,诸位。
在命令引入情景下核查正则关系式,我习惯性关心四个层面:是不是应用几行方式修饰符(/foo/m)、是不是忽略配对目标结尾的换行符(/^\\d $/)、是不是容许空白字符(\\s)、是不是误写反斜杠模式匹配(/\/)。
应用几行方式修饰符。把几行方式用以配对期待容许的标识符时,便会存有逻辑问题。例如,以下编码:
本来期待只容许 xx.xx.xx.xx 文件格式的 IP 详细地址,因为应用几行方式,要是输入中某行符合条件就可以,那麼,我能用换行符输入几行,之一行符合要求 127.0.0.1、第二行随意內容,那样轻轻松松绕开正则限定:
本 wargame 未应用几行方式,因此 不会有这个问题。
忽略配对目标结尾的换行符。一些方式在配对的时候会忽视字符串数组末的换行符,而换行符本身也是一个合理的文件目录分隔符,将造成引入新命令。以下编码:
本意是过虑掉输入中非英文字母、数据外的别的全部标识符,输入换行符试一下:
果真被过虑了。但,若把换行符放到字符串数组结尾,正则反倒没法配对上:
这可趣味了,又能开心地引入新命令了:
本 wargame 无法取得成功过虑掉换行符,但并不是由于上边的缘故。
容许空白字符。空白字符包含空格符、换行符、水准制表符、竖直制表符等四个,命令引入的更好的朋友换行符也在这其中。编码:
原意只容许英文字母、数据、空格符等标识符,但忽略了换行符,造成命令引入系统漏洞:
本 wargame 无法取得成功过虑掉换行符,但并不是由于上边的缘故。
误写反斜杠模式匹配。正则关系式本身是个字符串数组,并不是立即传送给正则模块,只是先由語言对字符串数组开展解决后再传送给正则模块。希望配对上反斜杠(\\),反向思索下这一全过程,因为反斜杠在正则模块是个特殊符号,因此 \\\\ 才可以让正则模块恰当鉴别到反斜杠 \\;正则模块以前,\\\\ 历经語言的的字符串数组解决,因为反斜杠在字符串数组中也是特殊符号,因此 ,一个 \\ 就得用 \\\\ 表明、2个 \\ 就得用 \\\\\\\\ 表明。那麼,只要是用正则关系式配对斜线,务必得用 \\\\\\\\。它是不具有原生态字符串数组特点(r)的开发语言的常见问题,是有一点绕。例如:
浏览看一下:
还记得 wargame 也过虑了反斜杠,转过头看一下,哇喔,确实错用了:
OK,在正则一部分,因为误写模式匹配,我找到了散兵游勇,反斜杠。怎样利用?不清楚,走一步看一步。
然后我揣摩下 25、26 行。这二行目地很清楚,用引号包囊输入字符串数组,防止很有可能因正则过虑关不紧传送一些个特殊符号到命令行自然环境,构思是对的,但实际效果就不尽如人意了。
荷载一旦进到引号内,都将衰退成一般字符串数组,好无破坏力,唯一除外,命令更换符(“ 或 $()),缺憾的是,命令更换符被正则防范于未然,没法抵达 25、26 行。因此 ,不由自主地想起,引号肇事逃逸。
引号肇事逃逸,目地是让输入摆脱至引号外,修复特殊符号的真实身份,而已不被引号所拘束,只是是个一般标识符。我常见二种技巧,一是合闭、二是转义。
合闭技巧肇事逃逸引号。在输入中加上一个引号,让其与左引号结队,当然合闭,然后输入中就能出現故意标识符,最终输入中再加上一个引号,与右引号结队,或是,输入注解符以忽视右引号。例如:
我的所有输入都只有留到引号内,造成命令分隔符没法被命令行恰当鉴别:
我还在输入中提升2个引号(②、③),那样恰好与编码中的引号合闭(① 和 ②、③ 和 ④),因此 ,我的别的输入标识符(;id;)就能出現在引号以外,取得成功肇事逃逸引号:
转义技巧肇事逃逸引号。引号本身也是个特殊符号,如果有 *** 让它变为一般标识符,那麼输入的别的特殊符号就能让命令行恰当鉴别。反斜杠能够 办得到!以下编码:
带有故意标识符的输入被限制在引号内:{ X}
假设服务端生成的命令模型为 file “foo” “;date”,这时,我利用反斜杠将 ② 号引号转义为普通字符,那么 ① 和 ③ 号引号将自然结合,接着利用注释符将 ④ 号引号注释掉,date 对于命令行直接可见,逻辑上我能用 file “foo\” “;id #bar” 注入任意命令,再次逃逸到引号外:注,注释符 # 需要 URL 编码为 %23。
好了,还记得前面我找到正则漏洞无法过滤反斜杠么,wargame 中的引号已经无法束缚我,虽然当下无法直接利用,但至少又让我向前迈出一步。
继续看 29、30 两行的命令执行代码。显然这与命令注入漏洞多少有些关系。命令注入常见三种手法:利用命令分隔符注入命令、利用命令替换符注入命令、利用命令选项注入命令。
命令分隔符注入命令。命令分隔符包括换行符(
)、分号(;)、逻辑与(&&、&)、逻辑或(||、|),若在 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 的文件内容。
管它金城汤池还是铜墙铁壁,一颗松滑螺钉,它将全面瓦解。
将多个独立漏洞组合成漏洞链,完成目标攻击,绝对是我的 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_/. *** _15_here.txt bar #,另外,命令选项 -f 前应该得加个空格,最终载荷为 f1=foo\&f2=-f .f1a9_/. *** _15_here.txt bar #,来一发:
多么愉悦的攻击体验!
丝滑般的思绪,真实而自然!思绪自然?正则未正确过滤反斜杠、利用反斜杠逃逸引号、通配符模式猜解路径、注入命令选项读取文件,做作、别扭!以上是我为了凑字数、增篇幅写的,真实的攻击手法并非如此。
仔细审计正则过滤的代码。用 \\ 而非 \\\\ 表述反斜杠,不仅无法正确过滤反斜杠,还会引发连锁反应。你看,紧随 \\ 其后的是 |
:
前面提过,\\ 结果字符串转义后到达正则引擎变成 \,它与 |
结合变成 \|
,正则引擎误解成匹配竖线与换行符的组合。当我输入竖线与换行符的组合,确认被过滤:
换言之,服务端只过滤 |
而放行
。有换行符,我可以直接注入新命令,比如,执行命令 id:
既然能注入命令了,查看 flag 易如反掌!命令 grep -r . . 可以查看当前目录下所有文件内容,服务端过滤了 grep,我用内部空变量轻松绕过(g$1rep -r . .),或者,无效转义绕过(g\rep -r . .),或者,通配符绕过(/bin/grp -r . . 或 /bin/gr[d-f]p -r . .),我有 1024 种方式吊打目标。
OK,清晰,争取一次搞定,构造载荷 f1=foo\&f2=%0a/bin/gr[d-f]p+-r+.+.+%23,页面显示:
最后聊聊你关心的赏金漏洞。大致业务场景,服务端执行打包命令压缩几个固定目录,允许用户输入归档文件名,多次刺探确认使用的 zip 命令,类似:
其中,归档文件名 archive.tar 可控。服务端正则过滤所有命令分隔符、命令替换符、其他元字符,同时,禁止出口流量,显然无法直接注入命令。
一番尝试,发现允许横线(-),这就告诉我可以注入命令选项。我开始分析环境 zip 自身有哪些选项可以为我所用。先查找关键字 execute,一无所获;接着搜索关键字 command,找选项 –unzip-command(简写 -TT) 和 –test(简写 -T),允许用户指定第三方程序来校验归档文件的完整性:
换言之,选项 -T 和 –unzip-command 可以注入新命令 id:
成功拿到赏金。
命令注入攻击,除了常规的命令分隔符、命令替换符之外,利用环境自身也能实现。
注一,wargame 的原型来自 Kaibro 所写的 wargame,见
注二,escaping_quotation 源码,以及更多命令注入相关 wargame 见
学霸、天才无处不在,而现在又是互联网时代,黑客黑科技已经很多很多,而就是一位这样的天才,他从小就很讨厌写作业,他为了不交作业,黑掉了学校的网站,掩盖他没有交作业的事实,而他不交作业的原因只是为了玩电脑游戏,如此聪明,那么小就天赋这么发达,十分擅长计算机的这位小男孩,他现在怎么样了呢?他现在是不是已经从事了计算机行业的,工作呢?
黑客的,技术高深莫测,他可以干任何她想干的事情,有人利用黑客进行犯罪谋取利益,但是这是国家所不允许的,这位小男孩儿只是利用他的黑客技术,黑了学校的网站也没有办下什么触犯法律的事情。
【小学生的烦恼】
现在小孩儿的课业压力很,很大,比起我们那时候他们作业可能就要写到12点,好不容易到了周末,可以休息一下,但是家长给报了各种各样的兴趣,兴趣班期望越大,孩子就要越努力,越辛苦,所以越来越多的孩子不喜欢学习,不喜欢写作业,但是这位小男孩比起其他的小学生要与众不同,因为他在计算机方面十分有天赋,父母发现了他的这个兴趣爱好之后,也十分支持,让他学习这方面的知识。给她买了很多关于计算机方面的书籍教材,培养锻炼他这方面的天赋,但是父母培养她这方面的天赋并不是为了让他黑学校的网站呀。
【黑学校网站】
他是汪正扬,计算机对于我们大学生来说都是很难的东西,编程更是看不懂,一头雾水,但是对于八岁的汪正扬来说,确实so 简单我们觉得计算机枯燥乏味,一看见就想睡觉,但是他却精神抖擞所以他很喜欢研究计算机,但是小学生有很多的课余作业要完成,所以他就想了一个好办法,那就是黑掉学校的网站,黑掉学校网站,学校就布置不了作业,他就可以不用写作业。
【知错就改】
而在他黑掉学校网站之后,被发现了,他也主动承认了自己的错误,并且积极的帮学校修复了学校的网站,并且进行了加固,虽然这些事情对学校并没有造成任何的损失,但是汪正扬他的名声却被很多人知晓如此的天才儿童,有许多公司想要 *** ,他去做自己公司的技术人员,但是却拒绝了,因为他觉得他是一名小学生,现在的主要任务是学习,他想继续进修计算机,努力让自己的计算机天赋不能浪费,让计算机的天赋发挥到极致做自己喜欢的事情,就是这么的有前进的动力。
【如今的汪正阳】
如今的汪正扬已经考上了自己心仪的计算机专业的大学,而也不满足于现状,决定去国外进修计算机学习更多先进的科学技术知识和技术文化。兴趣爱好是决定一个人是否努力的先决条件,有兴趣我们就会将它做到更好,大家对此有什么看法呢?欢迎大家评论区留言评论,谢谢。
物联网时代眼看就要到来,但厂商在安全性方面似乎还没有做好完全准备。
英国《卫报》报道称,11岁美国神童黑客Reuben Paul在一场技术论坛上现场演示了如何入侵一只泰迪熊玩具并将其变成监视器,技惊四座。
Reuben Paul表示,大多数 *** 设备都具备蓝牙功能,我简单地展示如何连接到它,并通过录音和控制灯光来下达命令。基于此,我们日常生活所用的,都可能被武器化,并用来监视或伤害我们。比如窃取个资,例如密码、作为远程监控来监视孩子,或者使用GPS来查某人在哪里。
文章纠错
本文目录一览: 1、如果未来脑机商业化后,和手机隐私一样,我们的大脑隐私会不会被泄露? 2、自己家的wifi使用起来会不会像外面的wifi一样泄露自己的信息? 3、万茜点赞黑帖有动机,知乎成受...
该黑客团伙曩昔曾运用过一些较为常见的进犯手法,比方污损网站或运用分布式拒绝服务进犯(DDoS)。 在2013年4月7日,该团伙运用DoS进犯和数据走漏对很多以色列网站造成了有史以来最严峻的损坏。 而自...
黑帽黑客找旺客专家好相关问题 黑客经常用的昵称相关问题 黑客是如何获取资料 黑客吧远控软件(黑客远控木马) 黑客...
举例说一说同样的一个英文名字,“骇客”和“黑客”在网络中发挥的作用有... 黑客一词,源于英文Hacker,原指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。 但到了今天,黑客一词已被用于...
本文导读目录: 1、他13岁是中国最小“黑客天才”,因不想写作业黑掉学校网站,后来怎样? 2、年仅10岁的天才“黑客”:因不想写作业而黑掉学校网站,他现状如何呢? 3、中国年龄最小的黑客汪正扬...
近期,金融委会议多次“喊话”释放强烈信号,对中小银行发展的支持政策将全面升级。记者获悉,多部委正密集部署一揽子新举措,多渠道增强中小银行资本实力,加快构建资本补充长效机制。同时将抓紧补齐监管制度短板,...