网络安全系统学习1
前言
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
一、常见的网站漏洞
SQL注入、XSS、文件上传、反序列化、文件包含等。
- SQL注入:泄漏破坏数据库,数据库中可能有账号密码等敏感信息。
- 命令执行:获取目标机器执行权限,执行非法命令,破坏或控制受害机。
- 文件上传:上传木马文件到网站中,破坏网站甚至是系统。
二、DVWA的搭建
环境:mac m1 搭建方式:采用dockerf的方式。 由于本机环境复杂,采用Docker的方式pull纯净的镜像创建容器。完整的搭建方法后续可以用Win自己手动搭建
补充:可以学习一下,如何使用docker将Linux的命令打包成镜像发布出去。
搭建的方法可以参考blog:https://blog.csdn.net/kinghzking/article/details/126684051
# 下载镜像
docker pull citizenstig/dvwa
# 设置映射端口并启动 -p后边的8080:80代表把容器里的80端口映射给宿主机的8080端口。映射之后,可以通过8080端口访问该dvwa的主页。
docker run --rm -p 8080:80 citizenstig/dvwa
地址的访问:127.0.0.1:8080
视频中有关于通过PHP搭建网站的教程,在mac
三、命令执行漏洞
1. 解释
一般这个漏洞的出现是因为应用系统设计上需要给用户提供指定的远程命令操作接口,比如常见路由器、防火墙和入侵检测设备web管理界面上,会给用户提供ping操作的web界面,用户从web界面输入目标IP,提交后台会给ip地址做一个ping测试。如果设计者在设计该功能时,没有做严格的安全控制,会可能造成攻击者通过该接口提交恶意命令,让后台执行,从而获得服务器权限。
2. 常见的一些命令
cmd|cmd2 : 无论cmd1是否执行成功,cmd2将被执行。
cmd;cmd2 : 无论cmd1是否执行成功,cmd2将被执行。
cmd&cmd2 : 无论cmd1是否执行成功,cmd2将被执行。
cmd||cmd2 : cmd1执行失败,cmd2才会被被执行。
cmd&&cmd2 : cmd1执行成功,cmd2才会被被执行。
三个符号在 Linux 中有不同的用途和区别:
|(管道符):在 Linux 中,| 符号代表管道,用于将一个命令的输出作为另一个命令的输入进行处理。例如,ls | grep test 的意思是,在列出当前目录下的文件和文件夹后,将输出结果传递给 grep 命令并查找包含字符串 “test” 的行。使用管道符可以方便地组合多个命令来实现复杂的数据处理任务。
;(分号符):在 Linux 中,; 符号用于分隔多个命令或语句,使它们按顺序执行。例如,cd /home; ls -la 的意思是先进入 /home 目录,再列出其下的所有文件和文件夹。使用分号符可以简化执行多个命令的操作。
&(后台运行符):在 Linux 中,**& 符号用于将第一个命令放到后台运行。**例如,firefox & 的意思是在后台运行火狐浏览器,而不会占用当前终端窗口。使用后台运行符可以让您同时执行多个命令而不必等待前一个命令执行完毕。
在使用这些符号时,需要注意它们的区别并正确地使用它们,以避免不必要的错误。
三、命令执行防御DVWA的用法
提示:通过在靶场设置安全等级,在DVWA的DVWA security选项中 ,low,submit。然后,可以通过靶场在Command injection选项卡中,进行用户需要的命令执行语句。
四、过滤命令连接符
Command injection防御
防御命令执行最高效的方法,就是过滤命令连接符。
通过将如:上面说的| ; & || && 等命令连接符符号替换成空,或者判断输入这些符号就终止执行。
四、命令执行和防御Low
通过在Security中设置等级,通过Command injection等下方可以通过view Source查看php源代码。
五、命令执行和防御Medium
渗透测试解决方法:
- 白盒测试:可以看到源代码,查看源代码过滤机制。
- 黑盒测试:无法看到源代码,依次尝试常见命令连接符
六、命令执行和防御High & impossable
与Medium类似,high在渗透防御中更加类似于穷举符号连接符,但是防御并不严谨,如果穷举的连接符打错可能会影响。
impossible的防御能够在技术上突破,它的流程是:
- 去掉转义符;
- 通过.分割ip名;
- 依次判断ip名是否为数字(前4个),并判断拿到的数据size是否长度为4;
- 将处理后的数据拼接为ip;
“窗口反弹”是指黑客在攻击目标计算机时,通过利用漏洞或其他手段,将一个命令行窗口从受害者计算机上反弹回攻击者的计算机上。这样,攻击者就可以在自己的计算机上执行命令,并获取对受害者计算机的控制权。例如:拿到计算机的cmd操作。
补充:这个窗口反弹的指令可以自己操作一下。
七、SQL注入
改变原SQL语句的漏洞就是SQL注入。