从网站搭建的原理进行讲解
网站的搭建
网站的四大件 :系统&中间件&数据库&源码
从云服务器的购买开始讲解,购买阿里云服务器,选择按量付费
常规的web应用搭建:
- 购买云服务器,购买域名
- 在云服务上搭建中间件(windows server使用iis,linux可以使用Apache或者Nginx)
- 下载并上传网站源码
- 添加网站并绑定域名(迪总视频里面有演示,了解一下就好,感兴趣可以跟着配置一下,和后期渗透关系不大)
这里绑定域名其实是想讲在信息收集过程中,子域名收集的重要性。比如:
①在绑定域名的过程中,会让你选择不同的源码。www.xiaodi8.com和test.xiaodi8.com,两个域名对应不同的源码,如果在信息搜集中发现了xiaodi8的子域名test.xiaodi8.com,可以对子域名进行渗透测试,从而多一个攻击面。
②在绑定域名的过程中,你还可以选择不同的端口。www.xiaodi8.com:80和www.xiaodi8.com:88也可以对应两套不同的源码程序,从而多出来一个攻击面。
③在绑定域名的过程中,你还可以选择不同的目录。www.xiaodi8.com和www.xiaodi8.com/blog也可以对应两套不同的源码程序,从而多出来一个攻击面。
除了自己购买服务器搭建网站,还可以使用别人给你的分配站,比如你在cnblogs上面注册一个账号,cnblogs会给你一个站(了解一下就好了)
上面讲的网站搭建方式比较复杂,需要自己单独安装服务器数据库之类的软件,目前主流的方式是直接使用集成软件(比如宝塔https://www.bt.cn/,你可以尝试购买阿里或者腾讯的云服务器,云服务商提供宝塔面板,搭建起来比较方便。或者自己使用虚拟机,在宝塔官网上下载软件自己安装)
web程序源码:开源、商用、自写。这里迪总的意思是,在挖src的时候,大概估计一下目标的能力,可能会采用那种方式来写源码,一般大公司可能自己招人写源码,而不会使用网上的开源代码,难度相对来说比较大,针对这种情况需要自己积累经验。
中间件权限的设置影响渗透测试
1、视频里面,先放一个后门程序在post文件夹中,然后将post这个文件夹的权限全部关掉,模拟一个攻击者连接后门程序,结果连接不上。(迪总后面想修改这个目录的权限,也提示修改不了,翻车!)
对于文件上传来讲,即使你上传一个小马到目标网站上,如果上传的文件夹没有可执行的权限,你这个马还是运行不了的。
2、除了文件夹的权限,还可以进行身份验证
匿名身份验证禁用,启用windows身份验证
访问该文件夹需要进行身份验证
上面讲的这两点就是想说明,中间件的配置可能会影响渗透测试。
数据库
演示的是zblog程序
1、首先演示的是access数据库(这种在实际生产环境中几乎没有了)
.mdb文件直接用access软件打开
在后台文件中添加了数据,然后再打开.mdb文件,发现刚才添加的数据已经写进这个mdb文件中了。
2、还可以使用MSSQL(在搭建zblog的时候可以进行选择)
这个时候提到了一个概念,叫站库分离。
简单理解就是:网站的源码和数据库不在一台服务器上
这里数据库的主机地址就是另外一台服务器(很尴尬,迪总没有连上去,翻车!不过关系不大,大家体会一下意思就行了)。
对于云服务商来说,也会提供专门的数据库服务器。或者使用专门的存储(OSS,Object Storage Service),这样上传的小马就不在目标服务器上。有些云数据库只能特定的地址连接,或者不使用账号密码的方式进行连接。
然后又讲回到源码
对于开源代码又可以进行区分:
1、可以对源代码进行加密,源码不可见
2、由于某些语言特性(比如Java,为Java字节码,.class文件;.net为dll文件,需要进行反编译),源码也是不可见的。
路由访问
将不同的网址对应不同的程序代码
简单理解就是访问一个网站比如www.xiaodi8.com/1.txt,这个1.txt文件对应网站根目录下的一个1.txt文件。
但是目前大部分框架都不采用上面的方式,会在路由配置文件中设定一个对应关系。