Python全栈(五)Web安全攻防之11.Web安全攻防小结

一、信息收集

1. 域名

用whois工具收集。
子域名收集工具包括:

  • maltegoce
  • 浏览器
    • 如站长之家
  • wydomain

2.端口

常见端口

  • 21
  • 80
  • 443
  • 3306
  • 3389(远程端口)
  • 6379(Redis端口)

探测工具

nmap
使用命令:

nmap -A -v -t4 target

3.敏感信息收集

Google Hacking语法:

  • site:域名
    根据域名搜索
  • intext:关键字
    根据关键字搜索
  • intitle:标题关键字
    根据标题中的关键字搜索
  • inurl:地址
    搜索包含关键字的url

4.真实IP地址

如果存在CDN(内容分发网络),不容易探测到真实IP地址,需要绕过,可以通过ping进行测试。

5.shodan

shodan是特殊浏览器,搜索服务器、摄像头、路由器。
使用前需要先注册,获得API Key以便在命令行和Python等中使用。

浏览器中的常见用法:

  • webcam
    搜索摄像头。
  • port
    搜索端口。
  • host
    搜索地址。
  • city
    搜索城市。

命令行中使用:

  • pip安装
  • 初始化
shodan init api_key
  • 搜索

Python中的使用

  • 初始化
  • 搜索

二、sqlmap的参数

先下载,解压即可使用。

1.target

  • -u
  • -d
  • -m
  • -r
  • -c

2.request

  • –method
  • –data
  • –cookie
  • –user-agent
  • –referer
  • –proxy
  • –delay
  • –time-out
  • –retries
  • –randomize
    随机参数
  • –safe-url
    每请求几次,会进行一些正常的请求。

3.Optimization

  • –keep-alive
    保持长连接
  • –null-connection
    空连接
  • threads
    线程。

4.Injection

  • –skip
    跳过
  • –dbms
  • –os
  • –predix
    前缀
  • –suffix
    后缀

5.Technique

  • –technique
  • –union-cols
  • –union-char
  • –union-from

6.Enumeration

  • -b
  • –dbs
  • –dump
  • -D
  • –where
  • –start
  • –stop

7.Sqlmap练习

测试环境为墨者学院在线靶场,演示如下:

墨者学院sqlmap布尔盲注测试

三、SQL注入

1.前提条件

  • 参数可控
  • 参数与数据库有交互

2.分类

根据数据类型

  • 字符串
  • 整数

根据返回结果

  • 显错注入
  • 盲注
    • 时间盲注
    • 布尔盲注

3.GET报错的注入

  • 探测是否有注入点
  • 通过order by判断字段数
  • 通过union select获取表名
  • 通过系统表查询字段
  • 获取字段值

4.GET基于时间的盲注

举例:

if(ascii(substr(database(),1,1))=115,1,sleep(3))

看页面是否有延迟。

5.GET基于布尔的盲注

举例:

select ascii(substr(database(),1,1)) = N; 

6.POST报错的注入

原理:
闭合引号。

7.SQL注入绕过手段

  • 双写
  • 大小写
  • 编码
  • MySQL内联注释
  • 闭合引号
    • ' or 1=1
    • ' or '1'='1

8.SQL手动注入测试

测试环境为墨者学院在线靶场,测试如下:

墨者学院手动SQL注入测试

四、XSS跨站脚本

1.分类

  • 反射型
    非持久性攻击
  • 存储型
    持久性攻击
  • DOM型
    服务器不会处理响应。

2.payload

  • <script>alert(document.domain);</script>
  • 123"> <script>alert(document.domain);</script>
  • "</b><script>alert(document.domain);</script>
  • " onmouseover=alert(document.domain)
  • javascript伪协议
    javascript:alert(123)
  • CSS特性
background:url("javascript:alert(document.domain);");
  • 表单隐藏域
type=hidden
  • 实体双写
  • base64编码
  • 16进制编码
  • Unicode编码
  • IE浏览器特性

五、文件上传

常见的绕过验证的方式如下:

  • 绕过JS验证
    • BurpSuite去除JS
    • 浏览器去除JS代码并保存,在保存后的HTML页面提交
  • MIME-Type
    修改文件类型
  • 修改文件后缀
  • 大小写
  • 双写
  • 路径拼接
发布了92 篇原创文章 · 获赞 737 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/CUFEECR/article/details/105095848