| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> WEB攻防-通用漏洞&SQL注入&MYSQL跨库&ACCESS常规注入 -> 正文阅读 |
|
[大数据]WEB攻防-通用漏洞&SQL注入&MYSQL跨库&ACCESS常规注入 |
目录 #知识点:1、脚本代码与数据库前置知识 2、Access数据库注入 3、MYSQL数据库注入-简易&权限跨库 #前置知识:-SQL注入漏洞产生原理分析脚本代码在实现代码与数据库进行数据通讯时(从数据库取出相关数据进行页面显示),将定义的SQL语句进行执行查询数据时。其中的SQL语句能通过参数传递自定义值来实现控制SQL语句,从而执行恶意的SQL语句,可以实现查询其他数据(数据库中的敏感数据,如管理员帐号密码)。这一个过程就可以叫做SQL注入漏洞 漏洞产生根本条件:可控变量 特定函数 http://192.168.46.160:85/Production/PRODUCT.asp http://192.168.46.160:85/Production/PRODUCT.asp?id=1513 如果下面的URL地址测试注入判断id有注入,手工测试该如何进行? http://192.168.46.160:85/Production/PRODUCT.asp?id=1513&page=1 Production/PRODUCT.asp?id=1513 注入语句&page=1? 对 Production/PRODUCT.asp?id=1513&page=1 注入语句? 错 -SQL注入漏洞危害利用分析通过sql注入可以实现对数据库数据的增删改查 SQL注入攻击流程1、猜测数据库类型 2、根据类型选择思路 ACCESS 独立存在ACCESS:access数据库是单独存在的数据库,它不像mysql存在多个数据库。 信息:数据库名、表名、列名、数据 MYSQL 统一管理MYSQL数据库:为了网站和数据库的安全性,MYSQL内置有ROOT最高用户,划分等级,每个用户对应管理一个数据库,这样保证无不关联,从而不会影响到其他数据库的运行。 信息:?最高数据库用户=root用户、表名、列名、数据 数据库A=网站A=数据库用户A、数据库B=网站B=数据库用户B MYSQL注入的思路: 1、非ROOT的注入攻击:常规类的猜解 2、ROOT用户的注入攻击:文件读写操作,跨库查询注入等 黑盒测试中可以采用user()获取当前用户权限,白盒中看连接用户即可! MYSQL5.0以上版本: 自带的数据库名information_schema,注入时可以通过以下数据库名查询信息 information_schema:存储数据库下的数据库名及表名,列名信息的数据库 information_schema.tables:记录表名信息的表 information_schema.columns:记录列名信息表 information_schema.schemata:记录所有数据库名 version():查询数据库版本 user():查询用户是否为root @@version_compile_os:查询系统 database():查询数据库名 案例:PHP+MYSQL-简易注入-存储特性先查看一下数据库信息。(正常的SQL注入下肯定不知道数据库的信息,为了方便讲解先透露一下数据库信息,以防出错) 访问该页面并传参id为1,成功获取了数据
那么开始利用and判断是否有注入点 and:可以理解为与的关系,当and左右的两个数据有一个为假时,结果就为假。比如:1=1 and 1=0 结果为假。 下面测试中,and左边的页面刚才访问过可以正常访问,证明为真。如果and后面的数据为假,那么整个表达式都为假,页面就不会正常显示。证明了后面数据可以被执行,那么就是有注入点。(注:也可以使用or,or的表达式中只有一个为真表达式就为真。) union select 1,2,3:union代表联合查询,为了执行后面的代码。select为查询语句,select直接加数字时,可以不写后面的表名,那么它输出的内容就是我们select后的数字。 通过查询可以看见有1和2两个返回值,那么证明了1的位置和2的位置的数据可以被显示出来。(目前知道数据库中有三列数据,黑盒测试的情况下需要使用折半查找去试)
PHP+MYSQL-跨库注入-权限属性首先利用函数database()获取数据库名,数据库为mozhu UNION SELECT table_name,2,3?from information_schema.tables where table_schema='mozhu' 语句分析:union和select上面有解释不在多说。information_schema.tables是mysql数据库中记录表名的表。table_schema代表的是数据库名称。table_name能理解为information_schema.tables表中的一个列名,而这个列名存储的是数据库中的表名。 语句含义:查询数据库中记录表名的表中的table_name的列,条件为数据库名是mozhu。 已知:数据库为mozhu????????表名为ink UNION SELECT column_name,2,3 from information_schema.columns where table_name='ink' and table_schema='mozhu' 语句分析:information_schema.columns是mysql数据库中记录列名的表。column_name就是information_schema.columns这个表中的一列,列名存储的是数据库中的列名。 语句含义:查询information_schema.columns这个表,条件为表名是ink,数据库名是mozhu,获取表里的column_name信息。 已知:数据库为mozhu????????表名为ink????????列名为id gName age UNION SELECT id,gName,age from ink 语句分析:获取ink表中的id,gName,age的信息 由于页面只有两个显示位,age无法显示,可以修改对应的显示位信息进行显示。 SQL注入实战演练连接:www.comresearch.org/researchDetails.php?id=MQ== 通过连接可以知道id后面的值为base64加密(==结尾通常为base64加密),那么注入的语句也要是base64加密 利用order by查询表名的列数,order by后面跟数字可以进行列数的查询,若列数正确正常返回页面,否则报错。 利用折半查找可以发现列数为7 ? ?根据上面的思路,使用union select查询显示位,暴露位置为2,5,4 ? ?利用user,database,version查询用户是否为root,数据库名和版本类型 因为版本号时4.1.22,所以没有办法利用information_schema。小编尝试过利用字典并使用python进行暴力破解,但是没有成功。感兴趣的兄弟可以尝试一下。如果是5.0以上的版本,可以直接使用infomation_schema,思路最重要。 墨者:SQL手工注入漏洞测试(Access数据库)进入漏洞之后记得点维护通知,这里是突破口,不要上来就暴击破解,它是一只数据库漏洞。 和mysql数据库的注入原理一样,直接用and进行注入点探测,发现页面报错,证明存在注入点。
经过小编的认真查询,order by为5时报错,为4时正确,证明表中存在四个字段 and 1=2 union select 1,2,3,4测试显示位,显示位为2和3?
admin表直接利用猜解即可,通过返回值知道显示为2和3 提示:在Access数据库中,union两边的数据都为真才会进行显示。在偏移注入的时候,先用order by查询网页表的列数,再利用union查询其他表的列数,如果其他表的列数较少,直接利用*代替。 比如:www.mozhu.com 的order by为8,admin表为4列。语句www.mozhu.com union select 1,2,3,4,* from admin即可正常返回值,查询制表位。 and exists(select id from admin) 使用exists查询列名是否存在,存在则正常返回页面。靶机中常用列名id,username,passwd或者password,最后会发现username和passwd可以正常返回,代表存在列名。 ? union select 1,username,passwd,4 from admin 利用显示位获取信息即可 ?md5对密码进行解密并登录获取flag MD5:32或16位位由数字"0-9"和字母"a-f"所组成的字符串 ? ? ? ? ? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 | -2025/5/1 19:20:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |