2019 web安全基础知识学习

目录

19.9.2

环境安装vm kali-linux(攻击机)和owasp broken web apps(靶机)

owasp 基金会名字 bwa应用名字

dhclient -r(释放)eth0(网卡)释放ip

dhclinet -v (获取) 获得ip

DHCP端口67

DHCP向服务器获取ip四步:

  • DHCPDISCOVER(广播)
  • DHCPOFFER (客户机反馈预留ip)
  • DHCPREQUEST(回应并广播选定ip)
  • DHCPACK(相应ack地址保留)

命令行:

  • 查询linux版本命令lsb_release -a

  • 删除文件:

    • -r 向下递归,无论有多少文件文件夹直接删除
    • -f 直接删除 不做提示,删除一个文件

​ 示例:

​ rm -r * 或者rm -r 文件路径 强制删除文件

​ rm -rf * 或者rm -rf 文件路径 删除路径下所有文件文件夹

19.9.5

  • 判断是Linux还是Windows最简单就是通过ping来探测,Windows的TTL值都是一般是128Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux
  • 判断目标网站服务器的具体的版本的话,可以采用 nmap 进行扫描, -O 和 -A 参数都能扫描出来
  • 探测网站是哪种web服务器,可以使用工具 whatweb

几种数据库的区别

  • 几种数据库的区别:
    • Access 全名是Microsoft Office Access,是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名:.mdb 一般是asp的网页文件用access数据库
    • SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端口号为1433。数据库后缀名 .mdf
    • MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是3306
    • Oracle又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是1521
    • 成本上的差距,access是不要钱的,mysql也是开源的,sql server 是收费的一般也就几千,Oracle的费用则数万。其次,处理能力,access支持千以内的访问量,sql server支持几千到上万的访问,而Oracle则支持海量的访 问。再次,从数据库的规模来看,access是小型数据库,,mysql 是中小型数据库,sql server是中型数据库,Oracle是大型数据

19.9.7--19.9.18

文件上传漏洞

  • MIME,

    全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。

常见的MIME类型

超文本标记语言文本 .html,.html text/html

普通文本 .txt text/plain

RTF文本 .rtf application/rtf

GIF图形 .gif image/gif

JPEG图形 .ipeg,.jpg image/jpeg

au声音文件 .au audio/basic

MIDI音乐文件 mid,.midi audio/midi,audio/x-midi

RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio

MPEG文件 .mpg,.mpeg video/mpeg

AVI文件 .avi video/x-msvideo

GZIP文件 .gz application/x-gzip

TAR文件 .tar application/x-tar

  • burp suite 代理/拦截作用

    • proxy代理功能

    • spider爬虫功能

    • scanner漏扫功能

    • 使用方法:打开- 设置浏览器代理服务器-地址为burp suie里面设置的-如果主机端用拦截可以吧接口设置为all

    • 结构图

    • 如果用主机连虚拟机的网可以用浏览器代理 把浏览器代理服务器设置为虚拟机ip 和端口8080 AND burp suite 拦截功能option设置接口给all

1.0 文件上传漏洞(中级owabwk)

  • 适用情况:服务器可以识别上传文件类型-- mime,上传脚本病毒失败,多数为服务器限制了文件类型mime

    • 用burp suite 代理拦截修改信息,把上传文件类型修改成服务器要求的类型(类似和服务器说谎)

      原来的

      修改后

    • 用burp sute转发请求,如果上床成功,之后用中国菜刀。

1.1 命令行

  • ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

    • 命令默认输出所有建立的连接(不包含监听的端口),包括 tcp, udp, and unix socket 三种类型的连接:

    • 查看主机监听的端口

      `$ ss -tnl`
      

      通过 -r 选项解析 IP 和端口号

      `$ ss -tlr`
      

      使用 -p 选项查看监听端口的程序名称

      ss -tlp
      

      最后一列就是运行的程序名称。还可以通过 grep 继续过滤:

      $ sudo ss -tlp | grep ssh 
      

      查看建立的 TCP 连接

      -a --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接

      `$ ss -tna`
      

1.2 一句话木马

  • shell2和shell3一句话小马,上传成功后直接在路径后面加上

    ​ “?cmd(密码)=phpinfo(函数或者linux命令)”

  • 菜刀 , post如果换成request就只能如上面在网页框里进行代码操作

2.0 低安全级别文件包含

2.1 文件包含原理

  • 文件包含:

    类似include,红框代表不正常, 绿框正常

    • https://www.jianshu.com/p/065deed3142e https://www.freebuf.com/articles/web/182280.html

    • 产生原因:文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。例如:

    • 本地文件包含LFI (Local File Inclusion)

    • 远程文件包含RFI (Remote File Inclusion)

    • 判断是否文件包含:服务开启allow_url_include 和 allow_url_fopen

  • php配置文件php.ini

2.2 robots.txt

  • robots.txt

    搜索引擎通过一种程序“蜘蛛”(又称spider),自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被蜘蛛访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎访问和收录了,或者可以通过robots.txt指定使搜索引擎只收录指定的内容。搜索引擎爬行网站第一个访问的文件就是robots.txt。

  • “../” 表示当前文件的上一级

  • rm -f *.txt

2.3 本地包含+webshell

  • 本地包含+webshell实例
  1. 制作一句话图片木马 picture.jpg

    ')?>
  2. 文件上传

  3. 执行文件包含并生成后门,即把图片路径传给文件包含漏洞的参数,例如:http://。。。。/..?page=+文件路径 (不一定是page要看文件包含漏洞具体的参数)

  4. 通过菜刀连接webshell

2.4 命令行

  • 清屏 clear 或者ctrl + l
  • systemctl start apache2 打开阿帕奇
  • systemctl status apache2 查看阿帕奇的状态
  • cd www , 意思是 到www目录;
    cd .. , 意思是到上一级目录;
    cd - ,意思是返回到上次的目录,类似windows返回 ;
    cd /,意思是回到根目录。
  • more+文件

2.5 远程文件包含

  • 建立自己的web服务器

  • 在服务器上传或者编辑一句话木马生成语句,最好保存为txt

    ')?>
  • 记下文件路径,回到文件包含漏洞的网站,执行文件包含并生成后门

  • 猜到连接即可

3.0 中安全级别文件包含

  • 中安全级别后端php代码

  • 影响:

    • 本地文件包含没有影响,只过滤了路径的http://

    • 远程文件包含:路径前面改成hthttp://tp://……

      http:// = hthttp://tp://

4.0 高安全级别文件包含

  • 后端php代码

代码写死,不灵活,但是很安全。

补充:文件包含是代码层面的,是去包含另外的代码,如何开发者没有对上传文件进行严格检测,就容易造成漏洞。安全是木桶效果,文件包含排行不是很高。sql注入排在第一位的安全问题。

19.9.22--9.29

SQL注入

1.0 sql基础

  • mysql 登录 : mysql -uroot -p‘owaspbwa’
  • 查看所有库 : show databases
  • 当前用户: select user();
  • 进入库 : use dvwa

补充:命令行大写才可以补全!!

  • 查看常见表的结构和属性:

    • show create table users 详细
    • desc users
  • 同一字段要用逗号隔开,不加 有别名的用处

  • 简单常用select语句

  • 索取其他库的要加 ‘库名.’

  • concat 函数连接多这个字符串成一个字符串

    语法:concat(str1, str2,...)

  • row 是行,column是列

  • 联合查询UNION

  • union

    • 联合字段数量必须一样,数字可以随意充当字段
    • limit+数字 ,用于限制查询的结果数量
    • 查询语句字段数写死用来限制union的时候--用数字去猜

  • 如果只想看自己sql语句的内容可以在前面的语句后面加上 “where 1=3”加上一个否命题

  • 查看表记录

    • information_schema databases里面的一个库

    • 数据库字典 :information里面的table表,保存着数据库所有表,库等等信息,但没有数据。

    • // TABLE_SCHEMA库的名字,

      //TABLE_NAME 表的名字

      //COLUMN_NAME 字段名

    • USER_PRIVILEGES用户权限表

    • \G特定格式输出

  • distinct去重 用法:SELECT DISTINCT 列名称 FROM 表名称

  • group分组 group_conest拼接

  • 获取库和表如下:

  • 获取表的结构

2.0 sql注入流程

2.1 基于错误的注入

  • ‘ 单引号如果引发错误,就有注入的可能性(报语法错误!!),输入错误,或者警告表明没有注入点。

2.2 基于布尔的注入

(只限于当前表)

  • 布尔逻辑注入的思路是闭合SQL语句、构造or和and逻辑语句、注释多余的代码。

  • sql注入语句:‘ or 1=1 -- pzl’

    说明:第一个‘用于闭合前面的条件, or 1=1 位真的条件,“-- “ 有空格或者”#“将注释掉后面的‘。

2.3 基于union的注入

(前后字段数要一致)

  • 联合前面的select,合并查询更多信息,一般在错误或者布尔注入确认注入点之后开始。

  • 猜测数据列数

    ’union select 1 -- ‘

    ’union select 1,2-- ‘

    ’union select 1,2,3 -- ‘

    ’union select 1,2,3,4 -- ‘

  • user()当前用户,database当前库,version当前数据库 版本

  • 一个字段获取多个信息用concat。

2.4 基于时间的盲注

(blind)

  • 1‘ and sleep(5)--’

3.0 sqlmap自动化注入

3.1 基本操作

  • sqlmap -hh|grep +搜索的参数

  • 搜索可能有注入点的网站:

    google:

    ​ inurl.php?id=1

    ​ inurl.asp?id=1

    ​ inurl.jsp?id=1

    ​ inurl:/admin/login.php

    ​ inurl:.php?id= intitle:美女

    百度:

    ​ inurl:news.php?id= site:edu.cn

    ​ inurl:news.asp?id= site:edu.cn

    ​ inurl:news.aspx?id= site:edu.cn

  • 获取帮助 sqlmap -h

  • --random -agent 攻击代理,迷惑目的

  • -dbms= DBMS 指定探测数据库类型

  • payloads 负载,指用于探测等的一些脚本工具。

  • -u +"url" 检测注入点

  • --risk= 风险等级

  • -current-user

  • --batch 默认参数自动设置

  • 探测注入点基本失败的标志: 【WARNING】GET 。。。。参数不具有动态性

  • -p 指定测试参数 比如:-p username 节省时间

  • -dbs 获取所有数据库 --current-db 当前数据库

TIM截图20191016162617

  • -D 库 --tables 获取库中所有表的信息

  • -D 库 -T 表 --columns 库中指定表的所有列 -C列名 “ ”

  • --dump-all 所有

  • 扫描整站

    sqlmap --forms --batch --crawl=2 --threads=10 --random-agent -u http://www.pin9.win/

3.2 基本步骤

TIM截图20191016164441

  • --cookie=“ ID ” 登陆一次之后服务器辨别用户的标识 ,多个用 ; 隔开
  • --sql-shell sql交互模式
  • –os-shell 系统交互模式

19.10.16--99.10.17

XSS跨站脚本攻击

1.0 简介

TIM截图20191016211513

2.0 原理

  • 反射型(xss reflected)

TIM截图20191016212116

  • 存储型 (xss stroed)

    留言板,评论框的

    TIM截图20191017104658

    ​ CSRF: 跨站请求伪造

  • 原因分析:

    TIM截图20191017105819

3.0 构造XSS脚本

3.1 常用HTML标签

TIM截图20191017110627

3.2 常用javascript 方法

TIM截图20191017110814

3.3 构造XSS脚本

TIM截图20191017111003

TIM截图20191017113449

TIM截图20191017113558

3.4 存储型 XSS

  • 获取肉鸡cookie

    • 打开 apache systemctl restart apache

    • vim /var/www/html/cookie_rec.php

      编辑

      TIM截图20191017114541

    • 提升权限 chown -R www-data.www-data /var/www

    • TIM截图20191017150015

4.0 自动化XSS BeEF

TIM截图20191017151325

TIM截图20191017151423

4.1 BeEf基础

  • 使用步骤:

    • 打开apache
    • 进入BeEF
    • 把给定的链接放入到有XSS漏洞的地方
  • 命令颜色 color:

    • 绿色 对主机目标生效并且不可见
    • 橙色 对目标主机生效但可能可见
    • 灰色 对目标主机未必生效(可验证下)
    • 红色 对目标主机不生效
  • create alert dialog 弹框

  • create prompt dialog 弹框标题

  • redirect browser(iframe)嵌入覆盖 不掉线比重定向要好一点

  • play sound

  • spyder eye 浏览器窗口拍摄

  • persistence 保持用户

    • man -in-the-brower 诱导受害者继续保持在页面保持BeEF持续进行
    • Create foreground iframe 更改页面所有链接
    • create pop under 制作一个很小窗口 子页面主页面退出不影响
  • social endinnering 社会工程学

    • 一些引诱受害者下载或者访问一些程序
    • 钓鱼

19.10.17--19.10.20

Web信息收集之搜索引擎

1.0 信息收集概述

TIM截图20191017191920

2.0 Google Hacking

2.1 site

TIM截图20191017192640搜索指定域名的网页域名

site: zhihu.com " "

2.2 filetype

文件类型

TIM截图20191017201706

2.3 inurl

搜索网址关键字的网页

TIM截图20191017201730

2.4 intitle

搜索标题关键字的网页TIM截图20191018150803

intitle:index of "parent directory" 搜索目录索引文件

2.5 intext

搜索正文关键字的网页

TIM截图20191018151046

discuz 论坛系统

CMS 建站系统

2.6 实例

TIM截图20191019102820

2.7 符号TIM截图20191019103645

2.8 搜索技巧

TIM截图20191019104127

TIM截图20191019112407

3.0 Shodan Hacking

  • www.shodan.io shoan(撒旦搜索引擎)有web工程师马瑟利编写的,被成为“最可怕的搜索引擎”,可扫描一切的互联网设备。除了最常见的web服务器,还能扫描防火墙、路由器、交换机、摄像头、打印机等一切互联网设备。

4.1 ip

4.2 service/protocol

TIM截图20191019190000

SSH 远程登录安全协议

4.3 keyword

基于关键词搜索的思路是根据banner信息(设备指纹)来搜索

“default password” country:“TH”

FTP anon successful

4.4 country

country:cn

country:us

country:jp

4.5 product

产品

TIM截图20191019192936

4.6 version

版本

product:mysql version:"5.1.73"

product:"Microsoft IIS httpd " version:"7.5"

4.7 hostname

hostname:.org

hostname:.edu

4.8 os

TIM截图20191019193753

4.9 net

TIM截图20191019193846

4.10 port

port:3389 windows远程桌面

port:445 SMB

port:22 ssh

port:80 网站

port:443 网站

4.11 综合实例

TIM截图20191019194137

5.0 Zoomeye Hacking

5.1 概述

TIM截图20191020183949

shift+/帮助

Linux远程桌面端口:3389

Windows远程桌面端口:22

19.10.20--19.10.22

Web信息收集之目标扫描

1.0 nmap

1.1 基础

  • 查看端口对应协议 grep 111 /ect/services

  • OS 操作系统

  • IDS 防火墙

  • MISC 杂项

  • 扫描行为也是攻击行为

  • nmap --help|grep ‘\-n’

  • -T 设置速度等级 ,1-5,越大越快

1.2 扫描示例

TIM截图20191021111029

TIM截图20191022201518

2.0 zenmap

  • -sU UDP端口扫描

  • -sS 非三次握手的端口扫描, Tcp SYN Scan (sS) 它被称为半开放扫描

    • 优点:Nmap发送SYN包到远程主机,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高,在工作中使用频率最高
      缺点:它需要root``/administrator``权限执行
      
  • -sn –traceroute 追踪跳数

3.0 OpenVAS(小恐龙)

TIM截图20191022212013

3.1 部署OpenVAS

kali最新版默认不安装OpenVAS

TIM截图20191022214141

  • Openvas -start

  • 检查安装:

    ss -tnlp

    openvas-check-setup

  • 登录时注意是https

19.10.23--19.10.27

Web漏扫之AWVS

TIM截图20191023111411

1.0 功能以及特点

TIM截图20191023111508

windows安装

2.0 AWVS安装

TIM截图20191023111921

2.1 网站扫描

testhtml5.vulnweb.com

TIM截图20191023202826

子域名扫描:

TIM截图20191024195134

Web漏扫之AppScan

TIM截图20191024195907

1.0 功能

TIM截图20191024195928

  • 支持中文版

Web漏扫之Burp suite

  • 社区版没有扫描

TIM截图20191026160648

1.0 功能以及特点

TIM截图20191026162358

TIM截图20191026163521

TIM截图20191026163539

2.0 Burp Suite使用

TIM截图20191026163821

TIM截图20191026165551

使用

  • 使用要先启用代理proxy
  • 关掉拦截
  • 设置options ip为all,即所有主机都可以使用本机的代理
  • 设置浏览器,启动代理指向开启Burp Suite 的主机ip
  • 把我们想要测试网站加如tatget scope范围里。

为了清楚显示我们想要的网站可以:

TIM截图20191026202515

3.0 爬虫功能(spider)

  • /robots.txt 每个网站都有的,说明那些文件可以爬取

准备工作:

设置代理域名

访问目标网站

目标域

拦截功能关闭

TIM截图20191026204548

TIM截图20191026204614

TIM截图20191026204845

TIM截图20191026204856

4.0 扫描功能

TIM截图20191027100227

TIM截图20191027100348

TIM截图20191027100405

TIM截图20191027100452

19.10.27--19.10.29

SSH密码暴力破解及防御实战

1.0 hydra(海德拉)

TIM截图20191027102241

1.1 指定用户破解

TIM截图20191027103204

  • -P+密码字典文件
  • -p+指定密码
  • -l+指定用户
  • -L+用户字典文件
  • -M+主机字典文件
  • 一般用法: hydra -l -root -P pass.dic 192.168.1.1 ssh

2.0 Medusa美杜莎

TIM截图20191028153808

2.1 语法参数

TIM截图20191028153912

TIM截图20191028154102

2.2 使用

medusa -M ssh -u root -P passlist.txt -H hostlist.txt -t 10 -F

  • -t线程数
  • -F只显示成功的

2.3 linux结果输出为文本

  • -o+文件名
  • -oX+文件名声成为XML格式

3.0 Patator

  • 强大的命令行暴力破解工具

TIM截图20191028154650

3.1 使用

TIM截图20191028154755

  • 使用文件字典:???=FILE0 0=passlist.txt ???=FILE1 1=hostlist.txt
  • 只显示成功的:-x ignore:mesg='Authentication failed.'

4.0 BrutesPray

TIM截图20191028155418

  • kali不自带要安装
  • 扫描+medusa爆破

4.1 语法参数

TIM截图20191028155709

4.2 nmap

TIM截图20191028155847

  • 最后生成xml文件存有22端口存活的主机

4.3 cat和tail -f区别

  • cat 命令 和tail命令都是显示数据的命令
  • cat 显示的是文件夹的全部的数据
  • cat 静态查看文件夹数据
  • tail 显示尾部的文件夹数据
  • tail -n num 显示num条数据
  • tail -f 可动态监控数据的变化

4.4 爆破使用

  • 利用nmap生成的xml文件

  • brutespray --file 22.xml -u root -P passlist.txt --threads 5 --hosts 5 -c

  • 生成的结果文件在/root/brutespray-output/ssh-success.txt

5.0 MSF

TIM截图20191029151557

  • MSF是一个框架,负载很多。

5.1 SSH模块

  • search ssh 获取模块路径

  • 用户枚举

TIM截图20191029152227

  • show options 显示参数

    TIM截图20191029152932

  • 设置好参数后:run

    TIM截图20191029153140

  • 可以看到主机中是否存在userlist.txt中的主机

5.2 SSH版本探测模块

  • ../ssh_version

TIM截图20191029153649

5.3 SSH暴力破解模块

  • ../ssh_login

TIM截图20191029153638

6.0 暴力破解防御

TIM截图20191029153910

TIM截图20191029164056

  • 改端口:vim /ect/ssh/sshd_config

  • 新增用户:

    useradd pzl

    passwd pzl

  • 白名单:AllowUsers pzl 这条命令放到/ect/ssh/sshd_config后面

  • PAM是一个第三方的验证身份的服务

19.10.29--19.10.29

中间人攻击

1.0 Ettercap(小蜘蛛)

  • 中间人劫持数据

  • 防御:windows绑定

    • arp -s ip mac临时的
    • (推荐永久的)
      1. netsh i i show in 查看接口idx值
      2. netsh -c i i ad ne idx +ip +mac store=active(或者persistent)
      3. active 临时生效重启时效 persistent永久有效
    • 如何删除绑定的ip/mac
      • netsh -c i i delete neighbors idx

    linux:arp -s ip mac

posted @ 2020-03-26 21:19  rower  阅读(897)  评论(0编辑  收藏  举报