adminer利用扩展

常规的方式,类似于phpmyadmin

可以进行文件读取,或者日志写shell

这里提出一个adminer的支持的sqlite扩展项

影响版本

  • adminer <4.2.5

在4.2.5版本之前,是可以允许sqlite空密码登录的

在4.2.5-4.6.3版本之间设置了不允许sqlite登陆

在4.6.3版本之上登陆要求密码不能为空,连接密码要求必须为空导致了矛盾

image-20210928131738499

利用方式

SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。

它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配 置。

就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或 动态连接。

SQLite 直接访问其存储文件。

在存在 sql 注入或者是存在 sql 语句执行的地方执行以下代码:

1
ATTACH DATABASE '23.php' AS test ;create TABLE test.exp (dataz text) ; insert INTO  test.exp (dataz) VALUES (''); 

会生成一个 23.php,具体路径要根据实际情况而定,其代码就是

根据文章的意思,先测试 sqlite 的连接

image-20210928153143503

地址在 db 参数上去了,显示无效数据库

image-20210928153204228

构造写码语句:

1
ATTACH DATABASE 'aaaaaaaaaaaaaaaa.php' AS test ;create TABLE test.exp(dataz text) ;insert  INTO test.exp (dataz) VALUES (''); 

执行该语句:

image-20210928153308076