Mysql注入读文件
mysql数据库在渗透测试过程中能够使用的功能还是比较多的,出了读取数据之外,还可以进行读写(但前提是权限足够)。
读文件前提:
1、用户权限足够高,尽量具有root权限。
2、secure_file_priv不为NULL

Mysql文件读写函数
举例:select load_file(’/etc/hosts’)
上面的例子是有条件限制的:
1、必须有权限读取并且文件必须完全可读。
and (select count() from mysql.user)>0 /如果结果返回正常,说明具有读写权限./
and (select count() from mysql.user)>0 /* 返回错误,应该是管理员给数据库账户降权了*/
2、欲读取文件必须在服务器上
3、必须指定文件完整的路径
4、欲读取文件必须小于max_allowed_packet
如果该文件不存在,或因为上面的任一原因而不能被读出,函数返回空。比较难满足的就是权限。
在windows下,如果NTFS设置得当,是不能读取相关的文件的,当遇到administrators才能访问的文件,
users就不能实现用load_file读取文件了。
在实际的注入中,我们有两个难点需要解决:
1、绝对物理路径。
2、构造有效的畸形语句。
在很多PHP程序中,当提交一个错误的查询时,如果display_errors=on,程序就会暴露web目录的绝对路径,只有知道路径,那么对于一个可以注入的PHP程序来说,整个服务器的安全将受到严重的威胁。
关于mysql into outfile注射,要使用into outfile 把代码写到web目录取得webshell首先需要3大先天条件:
1、知道物理路径(into outfule ‘物理路径’), 这样才能写对目录。
2、能够使用union (需要mysql 3以上的版本)
3、对方没有对(’)进行过滤(因为outfile后面的(’’)不可以用其他函数代替转换)
后天条件需要二个:
1、就是mysql用户拥有file_priv权限(不然就不能写文件或读文件)
2、对web目录有写权限MS的系统就不说了,一般都会有权限的,但是*nix的系统,通常都是rwxr-xr-x,也就是
说组跟其他用户都没有权限写操作,所以,要满足这5大条件还是蛮高难度的。
这篇博客探讨了MySQL数据库在渗透测试中的文件读写功能。内容包括读文件的前提条件,如用户权限和secure_file_priv设置,以及利用`load_file()`函数的限制。文章提到了获取服务器绝对路径的挑战和构造有效注入语句的复杂性。同时,讨论了使用`into outfile`写文件到Web目录以获取Webshell所需的条件,强调了权限和过滤的重要性。
971

被折叠的 条评论
为什么被折叠?



