day1-web安全基础(米斯特web渗透测试)
- 一、搭建网站
- 二、专业术语
- 1.域名
- 2.木马
- (1)软件木马:
- (2)脚本木马:
- 3.社工
- 4.IP
- 5.后门
- 6.Poc(验证),exp(利用)
- 三、HTTP协议
- 四、渗透测试步骤
- 1.获得授权
- 2.信息收集
- 3.挖掘利用
- 4.整理报告
- 五、编码(是我们web安全最常见的东西)
- 1.URL编码
- 2.Base64编码
- 3.HTML编码
- 六、加密(MD5加密)
- 1.压缩性:
- 2.容易计算:
- 3.抗修改性:
- 4.强抗碰撞:
- 七、DOS命令初识
- 常用DOS命令
- 1.通配符
- 2.查看命令
- 3.操作命令
- 八、信息收集
- 1.网站信息刺探
- (1)站点链接(有人知道此链接可以找到漏洞,有的不知道链接就找不到漏洞,在尽可能的提高你能挖掘的范围)
- (2)whois&备案
- (3)旁站C段&子域名
- (4)网站服务信息
- (5)网站服务器信息(分为两种一种物理服务器,一种远程服务器云服务器)
- 2.服务器信息刺探
- (1)Nmap初识(http://nmap.org/)
- (2)扫描C段:
- (3)扫描指定端口:
- (4)Nmap脚本引擎
- (4-1)扫描sql注射
- (4-2)使用所有脚本扫描
- (4-3)使用通配符扫描
- (4-4)smb系列
- 3.个人信息刺探
一、搭建网站
静态层(html,js,css)(静态网页是静态层的一些东西)
动态层(php,jsp,脚本语言框架)(动态网页包括动态层的东西,数据库等,因你输入而改变是动态层)
服务层(web容器Apache,Nginx)
系统层(Mac,windows,Linux)
利用PHPstudy搭建一个网站,有很多集成环境
Apache(web容器)
PHP网站脚本编程语言(解释性语言:通过解释器就能直接运行此代码,而不需再生成另一个文件)
Mysql(用户的信息存在此处)
网站搭建好后
二、专业术语
1.域名
本地网站内网可访问,其他网络不可访问
域名可以解析到IP上,访问域名就是访问IP
2.木马
(1)软件木马:
远程控制软件的一个恶意化的软件(如timevaver有主控端和被控端,若朋友想控制你电脑,需要有你的ID和远程控制密码才行(前提是两个人都有timevaver这个程序))
软件木马也是这个道理,但是其变成一个很流氓的,无需告诉ID和密码,只要安装了这个客户端,其主控端就能控制这个被控端,只要安装了这个软件木马就会被控制。
(2)脚本木马:
脚本语言写的一个木马,可以通过这个脚本木马控制这个网站。
3.社工
凯文米特,社会工程学之父,利用心理缺陷(七宗罪)达到自己的目的。随着网络发展,也演变为了人肉,在网络人肉某个人,靠的是网络留下的痕迹,如在网上留下个手机号会被人找到。
4.IP
5.后门
之前讲到软件木马就是一个后门,不知不觉被别人安装了这个软件木马,人家可以通过此软件木马进入电脑。
后门的作用:
比如说你去入侵了别人的一个服务器,因为想持续性获得这个网站的管理权限,但是又怕自己一退出,别人又会将你的管理权限的账户删掉,这时可以留个后门,以后通过此后门再来控制这个服务器。(当然在未授权的时候请不要做这种事,因为这是违法的)
6.Poc(验证),exp(利用)
猜想验证,利用,可能经常看到某些从编写poc到什么什么,你会编写某某漏洞poc吗,你会编写某某漏洞exp吗。有人问你有这个漏洞的poc吗(你有验证这个漏洞的工具吗,你有验证这个漏洞的代码吗)
或者有人问你有这个漏洞的exp吗(你有利用这个漏洞的工具吗,你有利用这个漏洞的代码吗)
可能是一个可视化的工具,或者就是一串url的资源(代码一样的东西)
三、HTTP协议
1.什么是HTTP协议?其作用(超文本传输协议,访问网站)
2.读《图解HTTP》,了解HTTP协议
3.你访问的url是什么东西
注意域名不是网址
域名:www.baidu.com
网址:http://www.baidu.com/1.php?id=1
【协议】://host:port/
首页:index.xxx
使用火狐浏览器捕获http,在火狐浏览器上安装live http header插件来捕获
四、渗透测试步骤
1.获得授权
渗透测试即将开始的时候我们需要获得测试目标提供的授权,否则无法进行下去(记住口头授权不一定安全,一般是纸质版的授权最好)
2.信息收集
知己知彼,方能百战百胜。进行渗透测试的时候首先需要针对网站及个人进行信息收集
3.挖掘利用
这是渗透的主要环节,挖掘并且利用漏洞
4.整理报告
做完渗透测试、我们要根据情况整理报告(给目标厂商的技术看的,然后其修复漏洞)
五、编码(是我们web安全最常见的东西)
使用hackbar插件可以进行以下的编码(在查看元素中可以看到此软件)
1.URL编码
Url编码是一种浏览器用来打包表单输入的一种格式
编码格式为:%号 + 十六进制
2.Base64编码
Base64是网络上常见的用于传输8bit字节代码的编码方式之一
编码格式为:大小写字母数字/大小写字母数字+ =号
3.HTML编码
在HTML中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。所以使用实体化编码。
编码格式为:&开头/&#开头,;结尾
六、加密(MD5加密)
Message digest algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提高消息的完整性保护。目前不可逆解。(其实是哈希,不能通过算法去解它,但是有解密方法,不叫逆向解密,叫碰撞解密)
1.压缩性:
任意长度的数据,算出的MD5值长度都是固定的
2.容易计算:
从原数据计算出MD5值很容易(如一个软件MD5是此,但算出来的MD5值不是这个,那么此软件被修改过了)
3.抗修改性:
对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4.强抗碰撞:
已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
MD5默认长度为:16位和32位
MD5只可以包含abcdef这几个字母和数字0-9
MD5(mstsec,16) = d5fb786963797bc3
MD5撞密思路
字典撞密,存储撞密
七、DOS命令初识
DOS命令(磁盘操作系统)命令,是DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其他命令
Cmd只是调出DOS的命令,有些问题用DOS解决还是非常好的
常用DOS命令
1.通配符
通配符是一类键盘字符。当查找文件夹时;不知道真正字符或者不想键入完整名字时,常常使用一个通配符代替一个或多个真正字符。
通配符常见的就两个,如果了解正则表达式可能有其他通配符
星号(*)
可以使用星号代替0个或多个字符。如果正在查找以AEW开头的文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt.
AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并以.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。
问号(?)
可以使用问号代替一个字符。如果输入love?,直接以找love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。
2.查看命令
(1)cd进入某个路径
(2)Dir显示目录下的目录和文件
(3)More查看文件内容
(4)Type查看文件内容
3.操作命令
(1)md创建文件夹
(2)Rd删除空文件夹
(3)Copy复制
(4)Del删除
(5)Ren重命名文件
八、信息收集
1.网站信息刺探
(1)站点链接(有人知道此链接可以找到漏洞,有的不知道链接就找不到漏洞,在尽可能的提高你能挖掘的范围)
方法:
暴力破解、搜索引擎、站内爬虫
暴力破解(后期讲用什么暴力破解)
工具:
1.weekfile(猪猪侠自己开发的一款工具,暴力破解枚举网站敏感东西文件、压缩包等)
2.御剑,在后期也会使用现在不用,只是了解
3.搜索引擎(在后期会讲搜索引擎语法)
搜索引擎高级语法(圈内称其为谷歌hack语法)
Intitle
Intext
Inurl
现在讲一个搜索资源的方法在搜索框中输入(site:soubaidupan.com intitle:特种兵)
站内爬虫(深度爬虫,将一个个站内的链接提取)
(2)whois&备案
whois可以了解这个站长的信息,邮箱联系人等
备案扩大目标范围
(3)旁站C段&子域名
(旁站:一个IP上有其他网站,C段:有四个段,第四个是C段1.1.1.0-255)
做渗透测试比较累,前期的信息收集要做到一个精致的地步
大数据平台(FOFA PRO,钟馗之眼,shodan,傻蛋联网设备搜索系统,censys,谛听)
Bing接口查询(在线C段查询http://phpinfo.me/bing.php)
子域名(layer子域名挖掘机4.2纪念版但容易崩溃)
(4)网站服务信息
我们使用的liveHTTP header获取网站的响应报文:
得到信息如下:
Web容器为IIS版本7.5
网站开发语言为 :ASP.NET
(5)网站服务器信息(分为两种一种物理服务器,一种远程服务器云服务器)
Ping:dos命令获取服务器
多地ping:在线多地ping确认真实IP
IP反查:进一步确认真实IP以及所对应的网站
2.服务器信息刺探
(1)Nmap初识(http://nmap.org/)
nmap是一款开源免费的网络发现(network discover)和安全审计(security auditing)工具
-sT TCP connect()扫描,这是最基本的TCP扫描方式。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。(不推荐使用容易被发现,但有授权被发现了也没事)
-sS TCP同步扫描(TCP SYN),因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要root权限来定制SYN数据包。
-sF,-sX,-sN 秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包(参考RFC 793第64页)。
-sP ping扫描,用ping方式检查网络上哪些主机正在运行。当主机阻塞ICMP echo请求包是ping扫描是无效的。nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。
-sU 如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用此选项。
-sA ACK扫描,这项高级的扫描方法通常可以用来穿过防火墙。
-sW 滑动窗口扫描,非常类似于ACK的扫描。
-sR RPC扫描,和其它不同的端口扫描方法结合使用。
-sV 扫描服务端口、名称和版本
-O 远程检测操作系统类型以及版本(指纹信息)
(2)扫描C段:
nmap -sP www.baidu.com/24 -oN ip.txt
扫描百度服务器C段,并且生成报告txt。
(3)扫描指定端口:
nmap -p 80 198.169.1.2
要全面检测端口,需要加入:-p 1-65535
(4)Nmap脚本引擎
脚本扫描部分可以详细参考:nmap脚本使用总结
用法:
--script=脚本名称
如:nmap -p80 www.baidu.com --script=http-enum.nse上面的脚本为枚举目录,所以要指定http端口
(4-1)扫描sql注射
nmap -p80 www.baidu.com --script=sql.injection.nse
(4-2)使用所有脚本扫描
nmap --script all www.baidu.com
(4-3)使用通配符扫描
nmap --script “http-*” www.baidu.com 必须使用 “”
(4-4)smb系列
--script=”smb*” www.baidu.com
3.个人信息刺探
在如今这个时代只要你上网就一定会泄露信息