zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【转】Android之Inflate()方法用途+setContentView和inflate区别
    【转】Android 面试题笔记android五种布局及其作用
    温故知新系列(一)冒泡排序
    一道Java面试题目——随想+心得
    关于String 和 StringBuffer、StringBuilder
    Mysql变量
    Mysql函数
    Mysql流程控制
    Mysql事物
    Mysql视图
  • 原文地址:https://www.cnblogs.com/rower/p/12577429.html
Copyright © 2011-2022 走看看