我们第一季的黑客渗透入门教程着重讲解了端口扫描,寻找端口漏洞,并利用了今年才出的CVE-2017-7269漏洞进行了一次实战测试。
我们第二季来讲最流行的Web渗透,着重点放在服务端动态脚本的渗透上,简单地讲偏重于Web环境下的黑客教程。
一、什么是服务端动态脚本?
服务端动态脚本在百度百科上也并没有一个令人信服的概念,那只能由我来定义一下了。
服务端动态脚本是指放在服务器端才能运行的语言,每种语言都需要服务器端环境支撑。像asp需要Iis,php需要Apache等等。在本地端你能用本地浏览器打开的网页像html、htm、shtml都属于静态的了。其实你也可以根据网页链接的后缀来大体区分是否为动态语言。服务端的动态脚本语言有多少种呢?我根据我的知识面来画了一个服务端动态脚本语言后缀总结的思维导图:
二、我们搭建一个最流行、占市场率最高的php语言环境
我教你的方法都是最简单最方便的,去 phpstudy.net 下载一个2017版的phpstudy装上就可以了,基本是一键安装。
然后点击上图中的“其它选项菜单”=》“查看phpinfo”,出来如下图的页面就算成功了。
如果有防火墙询问是否允许mysql和apache通讯,选择全部允许就可以了。
恭喜你,你已经会服务器Apache+Php环境搭建了,到这步,其实你已经自己能建一个网站了,不过暂且只有你自己的电脑才能访问到。如果你配置好路由到你本机IP,那么就可以在全世界发布你的网站了,不过搭建网站不是我们讲的重点内容。
三、构建一个有漏洞的环境
1、下载 https://haiyangtop.cn/lyb.rar,把它的全部文件解压到phpstudy的安装目录的WEB文件夹(phpStudy/PHPTutorial/WWW),像是解压到phpStudy/PHPTutorial/WWW/book/这样的目录。
2、然后用editplus等编辑器打开phpStudy/PHPTutorial/WWW/book/config/link.php,修改里边数据库的用户名和密码为root,因为phpstudy的默认mysql 的数据库的用户名和密码都为root。
3、然后运行 http://localhost/book/install/install.php 进行安装。
4、我们最后还是用editplus等编辑器打开 phpStudy/PHPTutorial/WWW/book/adminlyedit.php,找到57行:
$sql = "SELECT * FROM ly where ly_id='$id' ";
去掉里边的单引号,改成如下所示:
$sql = "SELECT * FROM ly where ly_id=$id";
我们的漏洞环境就搭建完毕了。
四、漏洞环境测试
我们打开:
http://localhost/book/admin/lyedit.php?ly_id=2 and 1=1--
和
http://localhost/book/admin/lyedit.php?ly_id=2 and 1=2--
你会发现两个页面明显有区别并不一样,图示如下:
五、漏洞环境原理
这种手法是典型的SQL Injection了(SQL注入),中文叫数据库注入。
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。
但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。
用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
大家还要明白一个概念:SQL注入攻击的不是像php这样的动态语言本身,而是它背后的数据库。所有的服务端动态脚本语言都可以连接数据库,像aspx连接mssql、php常用的是mysql,jsp是oracle等等。我们一直攻击的是数据库,明白吗?
再一次回到上面的案例中来分析:
and 在数据库语法中,逻辑为“和”,1=1永远又是真的,所以:
http://localhost/book/admin/lyedit.php?ly_id=2 and 1=1--
网站页面不变。
如果网站有漏洞的话,那么:
http://localhost/book/admin/lyedit.php?ly_id=2 and 1=2--
网站页面就会有变化。
总结:
新手Web渗透教程 第一课暂且只讲这么多,跟着我做,你会黑客入门的,我们第二课就要进行实战测试了。
2018年03月15日 13:57:19 沙发
好多网站都有漏洞!