创新路
我们一直在努力

批量替换config.php文件

    最近发现网站程序下的config.php文件被篡改?里面的数据库信息替换为了他人的信息!并且被篡改得网站数量还不少!扫描出来发现竟有几十个,手动一个一个去备份文件中替换还特别麻烦?于是灵机一动,写了个bat脚本来快速批量替换文件!

    本来应该是很小的一个脚本,奈何途中碰见了一些问题,无奈弄了很久很久,最后还是解决了问题,发个帖子记录一下

    一、既然要在压缩包里面提取文件,那就需要用到winrar这个软件

        格式:WinRAR e 压缩包路径 需要提取的文件 提取到哪里

        WinRAR e F:\bak\20190101\aaa.rar config.php E:\web\aaa\web\

        写出了这句最最核心的命令之后运行发现,因为原目录中是有config.php这个文件的,每次提取文件过去,都会显示提示覆盖,这个当然不能一个一个手动去操作,于是乎,查找资料

        根据“百度”到的资料显示,有一个参数o[+|-]是设置覆盖模式,很容易看出,+是覆盖,-是不覆盖

        image.png

        于是语句变化

        WinRAR e -o+ F:\bak\20190101\aaa.rar config.php E:\web\aaa\web\

    二、这只是替换了一个文件而已,有很多个,这一句代码显然是不够的,于是继续改造,加循环

        image.png

        设置了几个变量,加了一个循环的外壳,读取3.txt文件中的网站名列表,新问题出现了!!!

        运行,窗口一闪而过!懵逼,啥都没显示!但是一闪而过的窗口上显示了一句话,没看清,再来!

        此时发挥了我万年的手速,终于截图到了这一句话

       image.png

        又“百度”了一圈,没啥用

        于是开启疯狂注释模式,一行一行排错,发现了和设置变量有一些蛛丝马迹

        image.png

        查找资料发现,在bat脚本,使用for循环中,如果需要定义变量,需要开启延迟变量,如果不开启延迟变量,那么就会出现变量赋值无效的情况,难怪不得!默认延迟变量是关闭的,需要在bat开头添加一句setlocal EnableDelayedExpansion,并且变量需要用一对!!括起来

        测试了一下,确实是这样,不过这么复杂我是不会用的,于是我把变量给放在了for外边 O(∩_∩)O

    三、于是代码变成了这样,加入了人性化的人机交互

        image.png

        只能批量复制是不够的,还需要单个恢复,于是又改了一小下

        image.png

        经测试,发现ok!

        于是大功告成!

        GIF.gif

        GIF2.gif

未经允许不得转载:天府数据港官方信息博客 » 批量替换config.php文件

客官点个赞呗! (0)
分享到:

评论 1

评论前必须登录!

  1. #1

    加上ftype你会发现世界完美了,所有服务器通吃。

    jwenshan4周前 (07-25)

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机