2020-08-28
服务启动与程序启动的区别:程序启动在主机关机或用户注销账户后容器与数据库将会自动关闭,服务模式则是在系统启动后自动运行程序
①服务器(电脑主机) 偏向于CPU,内存(专用于运行某些程序)
【Windows 2003(10年前 IIS6.0)Windows 2008(5年 IIS7.5or7.0)Windows2012(目前 IIS 8.0)Windows 2016(目前 IIS8.5)Windows 2019(暂未普及 IIS10)】
②家庭电脑偏向于显卡,CUP,内存(主要是打游戏,设计图形,各种应用)
【Windows 2000,Windows XP,Windows 7,Windows 8.1,Windows 10】
服务器分有的系统和家庭电脑的系统也不同。服务器更加侧重于稳定性,家庭电脑更加侧重于质量性
服务器是可以被全世界所有人访问,黑客可以利用漏洞去取得控制权限。
环境有很多种例如:Apache环境(适合运行PHP),Nginx环境(适合运行PHP),Tomcat环境(适合运行JSP),IIS环境(适合运行ASP,ASPX)等。Tengine容器继承了Nginx的所有特性兼容Nginx的配置
Access,MYSQL,SQL server(MSSQL),Oracle,Redis,Mongodb
IIS容器一般配Access和MSSQL,ASP脚本一般配Access,ASPX脚本一般配MSSQL
Tomcat容器一般配MYSQL和Oracle(土豪数据库)
经常用于Web应用数据库:Access,SQL server(MSSQL),MYSQL,Oracle
Access,SQL server(MSSQL),MYSQL,Oracle他们总的可以分为四种功能:库,表,列,值
①MYSQL数据库中用户@符号后面的内容的含义:[email protected](限制root只允许从本机登陆)[email protected](限制root用户只允许从192.168.1.9这个IP地址登陆数据库)[email protected]%(root账户允许从任意IP地址登陆数据库)【数据库外联】
3) 重启已安装的Apache服务(迫使服务重读配置文件,适用于修改配置文件后)
ASP(比较老的一种语言),ASPX(ASP.NET),JSP,PHP【动态脚本】:可以根据内容给出不同的变换
客户端访问服务段相当于访问网站的文件(PHP)【它调动PHP脚本程序进行解析判断False或True】然后输出给服务端,服务端再返回给客户端。
Apache的稳定性强于Nginx,Nginx同样的web服务,会占用更少的内存及资源。apache的rewrite比nginx强大。Apache更为成熟,少bug。总结而言两者最核心的区别在于Apache是同步多进程的模型,一个连接对应一个进程,而nginx是异步的,多个连接(万级别)可以对应一个进程、
HTML脚本是一种简单的脚本,例如:<center><a href="http://www.baidu.com">百度一下你知道</a></center>,在前边加一个<center>和后边加</center>是为了告诉电脑是哪一个位置居中,当你处于<center>内容之中,里边的内容就会居中。
a、客户端访问服务端相当于访问网站的文件(html),服务端直接把结果反馈给客户端(html)静态脚本不适用于自动化,更适用于机械化。
b、 这种就为HTML语法(伪静态)【告诉它哪开始哪结束】,HTML他需要人工随时去更改内容。
如果是动态脚本,服务端就会判断我们的请求交给脚本例如【PHP脚本程序】,然后脚本程序再判断然后返回客户端,客户端再返回给客户端。PS:你必须请求一个可以识别的脚本
当我们访问一个网站,我们就是在访问服务器的某个文件。我们可以通过httpg.conf来控制默认打开网站时候默认打开的文件。
①在httpd.conf的Driectory"你想填入的文件地址"和DocumentRoot“你想填入文件的地址”
【然后结束Apache的进程(httpd输入到命令窗口然后Ctrl+C),有时候你访问你自己的资源时候服务器会自动缓存有一些文件,在结束进程后同样可以看见缓存内容。当你去访问那个网站时候时候,电脑会直接从本地调用已经缓存好的文件,我们需要删除缓存文件才可以刷新时候看不见缓存好的内容。】
然后再次起动Apache,这时文件的默认访问目录就更改了,打开的位置就不同了。
本机IP:127.0.0.1(localhost)【代表着本机IP】
局域网IP(内网):路由器会给连接他的用户分配一个IP,也叫内网IP地址
广域网IP:路由器连接到中央处理器形成一个巨大的局域网叫做广域网
局域网和广域网IP每次重启都会改变,他是自动获取的。局域网IP可能一个IP可能有几百个人使用着,只是因为端口不同。
局域网IP地址等级划分:A类IP地址:10.xx.xx.xx【银行和大型网络】
查询IP口令:linux口令:ifconfig Windows口令:ipconfig
B段:192.168.0.0/16 【192.168.0.1-192.168.255.255】255*255台主机
C段:192.168.1.0/24 【192.168.1.1-192.168.1.255】254台主机
数据库:MYSQL 3306 , Oracle 1521 , MSSQL 1433
PID:在系统中每一个进程都有一个标识符,我们可以查询PID来查询进程
常见的加密有:mysql加密,MD5加密,AES加密,sha256等
编码加密知识点:URL编码,16进制编码,Hex编码,Base64编码
Windows 2012的虚拟机设置
容器与脚本的标配关系与搭建Apache容器引入PHP脚本
1、Apache官网下载链接:http://httpd.apache.org/download.cgi
1.打开路径Apache2.4→conf→httpd.conf。
2.修改Define SRVROOT ":/Apache2.4"为Apache2.4文件路径,这里是Define SRVROOT "D:/Apache2.4"。
3.修改默认端口 Listen 80 为未使用端口号,这里是Listen 88。
4.修改服务器名称 ServerName localhost:80 为上面设置的端口号,这里是ServerName localhost:88。
6.下载并解压PHP7到任意磁盘位置,这里是D盘,并重命名为php。
首先,将php安装目录下的php.ini-production改名为php.ini
查找 ;extension_dir = "./" ,在后面添加
2)查找 ;date.timezone = 设置为date.timezone = Asia/Shanghai
1)打开httpd.conf查找#LoadModule xml2enc_module modules/mod_xml2enc.so的部分,并在最后追加如下代码:
LoadModule php7_module D:/wangshuyi/php7/php7apache2_4.dll
2)查找#AddEncoding x-gzip .gz .tgz的部分,并在最后追加如下现行代码:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
在httpd.conf文件里指定PHP配置文件php.ini的目录,这里定位到httpd.conf文件的未尾,在文本最后面一行添加 如下代码:
PHPIniDir "D:/ php" (这里的“D:/ php”为你的php.ini文件存放的实际路径)
查找“DirectoryIndex”的部分,在DirectoryIndex的后面追加一个“index.php index.htm”
#LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
其中所遇到的问题:
先安装补丁 KB2919442 下载地址: https://www.microsoft.com/zh-cn/download/details.aspx?id=42153
KB2919442 安装完成后,继续安装 Windows Server 2012 R2 Update (KB2919355) 所有补丁,下载地址: http://www.microsoft.com/downloads/details.aspx?FamilyId=373b1bb0-6d55-462e-98b7-6cb7d9ef1448
clearcompressionflag.exe 38 KB 管理员身份运行,没有界面,后台运
Windows8.1-KB2919355-x64.msu 690.8 MB 安装完成后,需要重起,这个安装过程根据你的硬件配置和网络决定安装速度。
Windows8.1-KB2932046-x64.msu 48.0 MB
Windows8.1-KB2934018-x64.msu 126.4 MB
Windows8.1-KB2937592-x64.msu 303 KB
Windows8.1-KB2938439-x64.msu 19.6 MB
Windows8.1-KB2959977-x64.msu 2.8 MB
所有更新包安装完成后,接下来我们继续安装 Microsoft Visual C++ 2015 Redistributable (x64) - 14.0.23026
②、当安装Apache出现<OS 10013>以一种访问权限不允许的方式做了一个访问套接字的尝试
打开Apache 的配置文件 Apache安装目录下的conf/httpd.conf
重启Apache访问 http://localhost:88
关于MYSQL安装流程
一、去https://dev.mysql,com/downloads/mysql下载文件,由于新版mysql是没有my.ini所以需要自己配置环境
在解压后的文件夹内新建一个my.ini,并在里边填入配置环境为
datadir=C:\\Apache24\\MYSQL\\data
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
PS:标红区域是取决于你下载位置,这些字体都是英文符号去填写
在变量值那填写你解压的位置:C:\Apache24\MYSQL\bin (一直点到bin)
输入cd /d C:\Apache24\MYSQL\bin 回车(你解压文件的bin目录下)
输入mysqld --initialize --console 回车
找到[email protected]:乱码(你的随机生成密码要记住)
这时需要上边之前记住的随机密码,然后输入那个随机密码再按下回车
ALTER USER 'root' @'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
安装MySQL出现“无法启动此程序,因为计算机中丢失VCRUNTIME14_1.dll。尝试重新安装该程序以解决此问题。”
缺少Visual C++,在https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads下载Visual Studio 2015, 2017 and 2019安装。
安装完成后打开C:\Windows\System32, 可以找到文件vcruntime140_1.dll,若没有,找到vcruntime140_1.dll,复制到路径C:\Windows\System32即可。
快捷式搭建Apache,PHP,MYSQL来搭建一个论坛网站
当你无法连接的时候可以通过VNC去通过网页来连接到服务器再检查原因
在国内购买域名的话,搭建好网站之后要去备案,不然只有内网可以访问到网站。
查看消息窗口是否有开始下载PHP,如果没有我们需要去软件管理单独下载PHP
如果网站没有备案的来到此窗口,把80端口删除,创建一个其他端口的
搭建网站时候我们需要把数据库分权,如果黑客得到最高管理root账户,则黑客会获得最高管理权。
来到Navicat Premium这创建MYSQL连接
添加权限,选择你创建好的数据库,选择所有权限,其他数据库不要勾选,只让这个账户管理一个数据库。
我们可以测试一下重新用刚刚新建用户来连接数据库,这样就只能获得新建数据库的权限,其他数据库都无法访问
这里的填写你刚刚创建的数据库用户和数据库名称,下边填写管理员密码。点击下一步
下载一个CMS【文章内容管理系统(网站管理系统)】
官网CMS PHPCMS DEDECMS 帝国CMS WordPress
来到原来服务器的网站根目录全部打包,还有网站数据库转存到桌面
4、接着来到数据库的config文件打开config_global.php文件把discuz改成你新接入数据库的用户名了,接着把密码改成新数据库用户的密码,还有数据库名也要改成新数据库名称
Burp的配置与使用原理
浏览器→Burp Suite→服务器→Burp Suite→浏览器展示
③Burp只能抓取基于HTTP或者HTTOS协议传输的数据包,如果对方使用TCP等协议的数据包,则无法抓取数据包
在浏览器配置foxyProxy配置只有127.0.0.1的8080端口出去这叫做局部代理
当我们开启全局代理,burp就会抓取电脑全部的http和https的数据包
这是burp上的默认选项。burp一般默认是不抓取本地的数据包。
User-Agent:发送数据包,告诉服务端我是电脑系统什么版本的
每一次访问网站都会显示一个cookie,cookie是基于客户端和服务端的一个凭证
这段语句查询member查询用户名是否有一个叫admin和密码为123456的
1、查询语句:select*from member where name =‘admin' and idcard'123456'
2、增加语句:INSERT INTO member(name,idcard) VALUES('admin','123456')
当提供的账户给PHP时候,PHP会生成一个cookie的东西,登陆成功时候,PHP会返回账户密码登陆成果给服务端,然后服务端发给客户端的cookie中就含有账户密码。当最后服务端返回给客户端时候
通过返回的数据包给客户端一个东西,那个东西含有一个叫SetCookie:name=adimn;pass=123456的东西存储在客户端的一个文件夹(cookie)中。当客户端再次访问服务端时候,服务端会首先检查你cookie是否有一个name=’admin‘;pass=123456的东西。
当程序员在IF判断中只做了第一层判断时候,黑客利用第一层判断伪造一个cookie通过判读从而访问后台时候,这就是一种未授权访问漏洞。
SEESIONS储存于服务端PHP传输一个登陆成功时候生成一个SEESIONS(加密的),服务端会生成的账户密码存储在seesions,保存在服务端。服务端会把seesions 的名字给服务端(命名方式:SetCookie=phpsessionid = asdfghjkl)然后客户端会把这个名字发给
服务端,服务端要去本机文件上读取文件名字和内容,然后传给PHP去判断是否存在name和pass,这时存在则登陆成功(这时不需要去验证密码是否正确)【因为session是储存在服务端的,如果用户篡改session的名字,就会导致在服务端找不到文件,则登陆失败】,如果黑客窃取了SESSIONS的文件名盗走了,这样黑客就可以登陆了。这种漏洞叫做XSS攻击漏洞【主要盗取session和cookie】。
①如果一千万个人去访问网站产生的session也是一千万个,则当我们去访问时候回影响访问速度。
②当session产生的文件太多,则服务端就会去自动去清理自己本机保存的session文件。导致客户端的session名失效。
ASP的session的名称命名为ASPSESSIOMIDASRRQDS
ASP.NET(ASPX)的session的名称为ASP.NET_SessionId
根据session名称信息收集可以推出脚本从而推出他的容器,数据库,系统
Linux系统和Windows系统的不同之处:无GUI与有GUI【图形操作界面】。大小写区分不同,在Linux系统区分大小写,在Windows系统中不区分大小写
从根目录开始一直到文件所在路径叫做相对路径【是从网站路径开始找】
①CMS由于属于开源程序,导致被很多很多白帽黑客通过代码审计漏洞,所以导致漏洞被找到的可能性比较小。
通过404 403页面收集信息:404 403页面在IIS中每个版本都会有所区别,从而可以识别出对方使用的IIS版本与系统版本。
403:访问的文件没有权限或者目录无权限列表——目录遍历漏洞
与502状态码的解释方法,当源服务器无法访问,CDN服务器就会返回502
每一次访问网站都会显示一个cookie,cookie是基于客户端和服务端的一个凭证
渗透过程中的信息收集
从中获取他的电话和qq,然后去百度搜索他的qq查询他的社交网站查询他的相关信息可知
还可以去百度搜索电话号码收集有用的信息,我们还可以去支付宝给他转钱可以查询他的名字
再去通过reg007去查询他的QQ邮箱的注册记录或者手机去查询他的组成记录
去站长之家用Whois反查他是否还注册有其他域名,或者是通过QQ邮箱去反查,或者注册人去反查。
②通过天眼查查对方一共拥有几个域名还有网站备案和旗下的股份公司