SQL手动注入解析
作者:震灵
注入环境:DVWA
探测步骤:
1、首先探测是否可以注入以及注入方式
原SQL语句为
SELECT * FROM xxx WHERE a='';
注入后为
SELECT * FROM xxx WHERE a='' or '1'='1' --;
这样注入有常见情况有两种用途
第一种用途是用于登录,可以用作万能密码直接进入后台
第二种用途是用于查询,若查询出所有内容则代表可以进行注入
此处展示的是第二种用途
2、探测列数
由于接下来要采用union探测内容,而union的规则是必须要列数相同才能正常展示,因此必须要探测列数,保证构造的注入查询结果与元查询结果列数与数据类型相同
探测采用order by
SELECT * FROM xxx WHERE a='' ORDER BY 1;
order by 1代表按第一列升序排序,若数字代表的列不存在,则会报错,由此可以探测出有多少列
3、探测展示位置
SELECT * FROM xxx WHERE a='' UNION SELECT 1,2 ;
并不是所有的查询结果都会展示在页面中,因此需要探测页面中展示的查询结果是哪一列的结果。上述SQL语句在本示例中展示了1,2,代表1,2列被展示在了页面中。因此可以利用1,2列进行注入查询。
4、探测数据库名、表名、列名
SELECT * FROM xxx WHERE a='' UNION SELECT 1,schema_name from information_schema.schemata;
上述SQL语句是查询数据库名的SQL语句,查询表名和列名的语句很类似,翻阅文档即可。
在探测数据库名、表名、列名的时候需要一些经验,经验不会影响最后的结果,但是经验会影响注入时间。名字如Admin,User的一般有可能是与用户有关的数据库,可以特别关注。
5、探测用户信息
最后一步,探测用户信息。其实有了以前的铺垫,探测用户信息是一个很简单的事情。
SELECT * FROM xxx WHERE a='' UNION SELECT User,Password FROM users ;
通过这一条数据便可以探测出所有用户的信息
部分数据使用了MD5加密,可以复制到MD5解密网站进行解密
6、更高级的SQL注入
对于有防护措施的程序,需要采用更高级的SQL注入手段进行诸如,比如替换SQL关键字大小写等手段。对于十分优秀的程序,SQL注入的意义就不大了,需要采用更高级的手段进行渗透测试。
SQL手动注入解析的更多相关文章
- dvwa——sql手动注入和sqlmap自动注入
手动注入 low: 源码: <?php if( isset( $_REQUEST[ 'Submit' ] ) ) { // Get input $id = $_REQUEST[ 'id' ]; ...
- sql注入解析
sql注入解析 sql注入解析(一)基本语法 sql注入解析(二)执行注入 sql注入解析(三)数据库类型 sql注入解析(四)避开过滤
- [攻防实战]CTF大赛准备(手动注入sql)
一.IIS write漏洞利用 先用工具扫描,再上传小马,使用菜刀连接即可. 思考点: 如何获知是一台IIS站点? 本例中上传的一句话木马是什么意思? <%eval request(" ...
- PHP手动注入实验
课程编写 类别 内容 实验课题名称 PHP手动注入实验 实验目的与要求 1.通过手动注入PHP页面,获取password字段名. 2.了解PHP手动注入的基本原理. 3.了解PHP手动注入的过程和基本 ...
- 大数据技术之_19_Spark学习_03_Spark SQL 应用解析 + Spark SQL 概述、解析 、数据源、实战 + 执行 Spark SQL 查询 + JDBC/ODBC 服务器
第1章 Spark SQL 概述1.1 什么是 Spark SQL1.2 RDD vs DataFrames vs DataSet1.2.1 RDD1.2.2 DataFrame1.2.3 DataS ...
- SQL基本注入演示
作者:ZERO 所属团队:Arctic Shell 参考文献:<sql注入攻击与防御> 使用平台:pikachu漏洞练习平台 导语: 在owasp发布的top10排行榜中注入漏洞一直是危 ...
- 一次简单的SQL手工注入
1. 首先要了解SQL注入的原理: SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 具体来说,它是利 ...
- PHP防止sql语句注入终极解决方案(包含pdo各种操作使用实例)
PHP防止sql语句注入终极解决方案完美解决方案就是使用拥有Prepared Statement机制(预处理sql)的PDO //先做个实验 先不用预处理sql写法<pre><?ph ...
- Oracle SQL的硬解析和软解析
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言),他们是从来不会共享使用的,也 ...
随机推荐
- Fail-Fast机制详解
Java中的Iterator非常方便地为所有的数据源提供了一个统一的数据读取(删除)的接口,但是在使用的时候容易报如下错误ConcurrentModificationException,原因是在使用迭 ...
- wget-文件下载工具
阅读目录:详解wget命令-文件下载工具 安装wget 命令格式 命令功能 参数指南 启动参数 记录和输入文件参数 下载参数 目录参数 http选项参数 ftp选项参数 递归下载参数 递归下载中的包含 ...
- 如何自学成为一个WEB前端
WEB前端是做什么的? 那些什么高大上的介绍作者就略过了,简单来说就是做网页的,我们上网浏览的网站界面就是WEB前端工程师做的. 在互联网迅速发展的近几年,你上网冲浪的时候是不是感觉WEB网站越来越漂 ...
- linux tcp中time_wait
http://www.cnblogs.com/my_life/articles/3460873.html http://blog.csdn.net/sunnydogzhou/article/detai ...
- 结构化CSS设计思维
LESS.SASS等预处理器给CSS开发带来了语法的灵活和便利,其本身却没有给我们带来结构化设计思维.很少有人讨论CSS的架构设计,而很多框架本身,如Bootstrap确实有架构设计思维作为根基. 要 ...
- $(obj).index(this)与$(this).index()异同讲解
$(this).index()在使用jQuery时出镜率非常高,在编写选项卡及轮播图等特效时经常用到,但$(obj).index(this)似乎有点陌生. 为便于理解,以下分两个使用场景加以分析. 场 ...
- Java中设计模式之生产者消费者模式-4
引言 生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区.其中一个是生产者,用于将消息放入缓冲区:另 ...
- 06.04 html
域名跟ip地址是绑定的看某个网站的ip地址 可以ping网址知道ip地址 最终访问的都是ip地址 每个ip地址都对应了一个空间(一块区域 要用来存储内容)网页访问的原理: 客户端电脑发动请求到服 ...
- kotlin成长之路
前言: 从接触Kotlin开始,也就是我今天开启写技术博客的决定,文采不佳,欢迎各位阅读者的理解与指点.而该篇文章是最为博客新手的我对Kotlin成长的引导篇,所以内容一般是Kotlin技术博客的目录 ...
- Unity3d: 资源释放时存储空间不足引发的思考和遇到的问题
手机游戏第一次启动基本上都会做资源释放的操作,这个时候需要考虑存储空间是否足够,但是Unity没有自带获取设备存储空间大小的 接口,需要调用本地方法分别去android或ios获取,这样挺麻烦的.而且 ...