浏览模式: 标准 | 列表 全部文章

PHP模拟手机访问并截取一段程序

这篇日志被加密了,请输入密码后查看。

清除Discuz帖子中被插入非法内容的小程序

朋友的Discuz论坛在2015年7月-10月期间修改论坛帖子,在每个帖子的末尾插入了非法内容(下方第1种),2016年7月14-16日期间修改论坛帖子,在每个帖子的末尾插入了非法内容(下方第2种)。内容从数据库中查询得到如下:

  • [b][url] [img] www.xxxxx.com [/img] [size=6][color=Blue]非法内容介绍[/color][/size] [/url][/b]
  • <meta http-equiv="refresh" content="0; url=http://xxxxx.com">[b][url] [img] www.xxxxx.com [/img] [size=6][color=Red]非法内容介绍[/color][/size] [/url][/b]

第一种内容只是一个红色大字体的链接,需要用户点击,第二种内容更加BT,会直接跳转到目标非法网站。因为帖子是被修改的,所以非常隐蔽,而很多通过搜索引擎进入网站的用户会被一瞬间导入到非法网站……

观察了一下上方2条非法内容中均包含的字符串,就可以在mysql数据库中查询到有多少帖子被修改了:SELECT count(*) FROM  `pre_forum_post` WHERE  `message` LIKE  '%[b][url] [img]%'

因为非法内容这个区域的字符是杂乱无章并且加了一些特殊字符,为了有效清除这些非法信息。我写了个PHP小程序,具体如下:

  • config.php 数据库连接信息配置文件
  • dz_clear_link_cmd.php 通过windows或者linux命令行下执行的
  • dz_clear_link_web.php 通过网页访问形式执行的

本小程序用于清除插入到discuz论坛帖子内容末尾的垃圾信息

本程序基于GBK编码设置,如果你的论坛程序是UTF-8可能会存在问题。

1. 打开config,编辑数据库信息

2. 把3个php文件上传到网站根目录下

3. 访问http://网站地址/dz_clear_link_web.php 输入帖子pid号进行清除

找帖子pid号的方法:

a. 找到有问题帖子,点击“回复”,找到链接中的reppost=1153981,这个1153981就是这个帖子的pid

b. 用phpmyadmin登陆数据库后搜索非法信息,找到帖子pid

如果你使用的是独立主机(windows或者linux系统),在1和2这两步的基础上,在windows命令行下或者linux的终端界面下执行dz_clear_link_cmd.php程序,格式为:

php dz_clear_link_cmd.php 帖子pid号

这样也可以清除帖子中的垃圾信息

dz_clear_link.zip

linux下逐行读取文本内容并处理

#!/bin/sh
 
row=`wc -l < source.txt`
for ((i =1;i <= $row;i=i+1))
do
onerow=`sed -n "$i"p < source.txt`
echo php dz_clear_link.php $onerow>>result.txt
done
 
读取source.txt文件行数,并进入for循环,把source.txt文件的第i行读出,并添加php dz_clear_link.php 在行前,重写到result.txt文件。

discuz论坛程序目录从bbs下调整到根目录的rewrite规则

有个discuz论坛,原本在www.is36.com/bbs目录下,后来程序被移到了www.is36.com根目录下。但是搜索引擎以及网络上其它引用的地址还是www.is36.com/bbs的地址。

情况:Windows 2003企业版、IIS6.0、PHP

修改httpd.conf配置文件,在原本discuz的系统规则最下方加入如下规则:

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^bbs/(.*)$ http://www.is36.com/$1 [L,R=301]

帝国CMS-管理员密码重置插件

适用于帝国CMS6.0以上版本,支持各编码版本。

来源:http://bbs.phome.net/ShowThread/?threadid=197874&forumid=31

因为官方网站下载这个插件需要登录,所以……

把下面代码保存为resetuser.php文件放在/e/update/目录下。

<?php

define('EmpireCMSAdmin','1');

$ecms_config=array();

$do_loginauth='';

require('../class/connect.php');

require('../class/db_sql.php');

require('../class/functions.php');

$link=db_connect();

$empire=new mysqlquery();


//------- 插件参数设置开始 -----


//进入重置页面密码

$pagepassword='123456';


//------- 插件参数设置结束 -----



@header('Content-Type: text/html; charset=gb2312');


//重置密码

function user_ResetUser($add){

global $empire,$dbtbpre;

user_CheckGotoPagePass();

$userid=(int)$add['userid'];

$password=RepPostVar($add['password']);

if(!$userid||!$password||!$add['repassword'])

{

printerror2('请输入重置的新密码','');

}

if($password<>$add['repassword'])

{

printerror2('两次输入的密码不一致','');

}

if(strlen($password)<6)

{

printerror2('密码不能少于6位','');

}

if(function_exists('DoEmpireCMSAdminPassword'))

{

$salt=make_password(8);

$salt2=make_password(20);

$password=DoEmpireCMSAdminPassword($password,$salt,$salt2);

$a="password='$password',salt='$salt',salt2='$salt2'";

}

else

{

$salt=make_password(8);

$password=md5(md5($password).$salt);

$a="password='$password',salt='$salt'";

}

$sql=$empire->query("update {$dbtbpre}enewsuser set ".$a." where userid='$userid'");

if($add['noquestion']==1)

{

$addsql=$empire->query("update {$dbtbpre}enewsuseradd set equestion='0',eanswer='' where userid='$userid'");

}

echo"<script>self.location.href='resetuser.php?ecms=success';</script>";

exit();

}


//返回用户列表

function user_ReturnUserlist(){

global $empire,$dbtbpre;

$users='';

$sql=$empire->query("select userid,username from {$dbtbpre}enewsuser");

while($r=$empire->fetch($sql))

{

$users.="<option value='".$r[userid]."'>".$r[username]."</option>";

}

return $users;

}


//登陆验证

function user_GotoPagePassword($ckpassword){

global $pagepassword;

if($pagepassword<>$ckpassword)

{

printerror2('页面密码错误','');

}

@setcookie('ckecmspagepass',md5($ckpassword));

echo"<script>self.location.href='resetuser.php?ecms=resetpage';</script>";

exit();

}


//验证信息

function user_CheckGotoPagePass(){

global $pagepassword;

if(md5($pagepassword)<>$_COOKIE['ckecmspagepass'])

{

printerror2('您还未验证权限','resetuser.php');

}

}


$ecms=$_POST['ecms'];

if(empty($ecms))

{

$ecms=$_GET['ecms'];

}


if($ecms=='GotoPagePassword')//登陆验证

{

user_GotoPagePassword($_POST['ckpassword']);

}

elseif($ecms=='ResetUser')//重置密码

{

user_ResetUser($_POST);

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>重置管理员密码</title>

<style>

a { text-decoration: none; color: #002280 }

a:hover { text-decoration: underline }

body { font-size: 10pt; }

table { font-size: 10pt; color: #000000 }

</style>

<script>

function CheckUserInfo(obj){

if(obj.userid.value=='')

{

alert('请选择要重置的用户');

obj.userid.focus();

return false;

}

if(obj.password.value=='')

{

alert('请输入重置的新密码');

obj.password.focus();

return false;

}

if(obj.password.value!=obj.repassword.value)

{

alert('两次输入的密码不一致');

obj.password.focus();

return false;

}

if(obj.password.value.length<6)

{

alert('密码不能少于6位');

obj.password.focus();

return false;

}

return true;

}

</script>

</head>

<body>

<br>

<br>

<br>

<?php

if($ecms=='success')

{

user_CheckGotoPagePass();

?>

<table width="600" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#4FB4DE">

  <tr> 

    <td height="30"><div align="center"><strong><font color="#FFFFFF">已完成重置</font></strong></div></td>

  </tr>

  <tr> 

    <td height="120" bgcolor="#FFFFFF"> 

      <div align="center"><font color="#FF0000"><strong>恭喜!密码重置完毕,现在您可以用新的密码登陆后台了。</strong><br>

        <br>

        <br>

        </font>(友情提示:建议马上删除 /e/update/resetuser.php 文件,防止被重复使用。) </div></td>

  </tr>

</table>

<?php

}

elseif($ecms=='resetpage')

{

user_CheckGotoPagePass();

?>

<form name="reseteform" method="post" action="resetuser.php" onsubmit="return CheckUserInfo(document.reseteform);">

  <table width="500" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#4FB4DE">

    <tr> 

      <td height="30" colspan="2"><strong><font color="#FFFFFF">重置管理员密码:</font></strong></td>

    </tr>

    <tr> 

      <td width="146" height="25" bgcolor="#FFFFFF">用户:</td>

      <td width="339" bgcolor="#FFFFFF"><select name="userid" id="userid">

<?=user_ReturnUserlist()?>

        </select></td>

    </tr>

    <tr> 

      <td height="25" bgcolor="#FFFFFF">新密码:</td>

      <td bgcolor="#FFFFFF"><input name="password" type="password" id="password"></td>

    </tr>

    <tr> 

      <td height="25" bgcolor="#FFFFFF">重复新密码:</td>

      <td bgcolor="#FFFFFF"><input name="repassword" type="password" id="repassword"></td>

    </tr>

    <tr> 

      <td height="25" bgcolor="#FFFFFF">安全问题设为空:</td>

      <td bgcolor="#FFFFFF"><input name="noquestion" type="checkbox" id="noquestion" value="1" checked>

        清空安全问题</td>

    </tr>

    <tr> 

      <td height="25" bgcolor="#FFFFFF">当前认证码为:</td>

      <td bgcolor="#FFFFFF"><?=$do_loginauth?$do_loginauth:$ecms_config['esafe']['loginauth']?></td>

    </tr>

    <tr> 

      <td height="25" bgcolor="#FFFFFF">&nbsp;</td>

      <td bgcolor="#FFFFFF"><input type="submit" name="Submit" value="马上重置登录信息">

        <input name="ecms" type="hidden" id="ecms" value="ResetUser"></td>

    </tr>

    <tr> 

      <td height="25" colspan="2" bgcolor="#FFFFFF"><font color="#666666">说明:密码设置6位以上,且密码不能包含:$ 

        &amp; * # &lt; &gt; ' &quot; / \ % ; 空格</font></td>

    </tr>

  </table>

</form>

<?php

}

else

{

?>

<form name="loginform" method="post" action="resetuser.php">

  <table width="500" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#4FB4DE">

    <tr> 

      <td height="30" colspan="2"><strong><font color="#FFFFFF">进入重置页面密码:</font></strong></td>

    </tr>

    <tr> 

      <td width="146" height="25" bgcolor="#FFFFFF">输入密码:</td>

      <td width="339" bgcolor="#FFFFFF"><input name="ckpassword" type="password" id="password"></td>

    </tr>

    <tr> 

      <td height="25" bgcolor="#FFFFFF">&nbsp;</td>

      <td bgcolor="#FFFFFF"><input type="submit" name="Submit2" value="进入重置登录页面">

        <input name="ecms" type="hidden" id="ecms" value="GotoPagePassword"></td>

    </tr>

  </table>

</form>

<?php

}

?>

</body>

</html>

<?php

db_close();

$empire=null;

?>

windows下批处理设置IP地址

netsh interface ip set address "本地连接" static 192.168.25.2 255.255.255.0 192.168.25.1
netsh interface ip set dnsservers "本地连接" static 223.5.5.5 primary
netsh interface ip set dnsservers "本地连接" static 114.114.114.114

Linux执行脚本出现/bin/bash^M: bad interpreter:...

在windows系统下用notepad++编辑器编写了一段代码保存为shell.sh,直接上传到了linux系统中,赋予可执行权限:chmod +x shell.sh,然后执行./shell.sh却提示/bin/bash^M: bad interpreter: No such file or directory

造成这个问题的原因是:windows下的编码格式与linux下不同

解决方法,在linux下使用dos2unix工具转码一下即可,centos系统只需要yum -y install dos2unix就可以安装完成,然后用dos2unix shell.sh完成编码转换,然后就可以快乐地执行了!

下载谷歌浏览器(Chrome)扩展离线安装包crx文件

以下载Wappalyzer这个工具为例

直接访问地址是(打不开)https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg

然后通过工具地址:http://yurl.sinaapp.com/crx.php

把扩展ID(红色的32位的字符串)填入后点击生成按钮,然后点击另存为就下载到电脑上了。之后在chrome浏览器地址栏中输入chrome://extensions/ 打开chrome扩展页面,再把下载到的crx文件拖进去就可以安装好了~

常见的一些扩展可以在这个地方下载到:http://yurl.sinaapp.com/crx2.php

  1. AdBlock
  2. Adblock Plus
  3. FireShot 捕捉网页截图
  4. Flashcontrol
  5. HTTPS Everywhere
  6. LastPass
  7. Page Monitor
  8. Pxxxroxy SxxxwitchyOmega
  9. Pxxxroxy SxxxwitchySharp
  10. Ratings Preview for YouTube
  11. Tampermonkey
  12. Todoist
  13. User-Axxxgent Switcher
  14. ZenMate
  15. 哔哩哔哩助手
  16. 惠惠购物助手
  17. 什么值得买
  18. 替换字体的中文部分为雅黑
  19. 小黄瓜视频广告拦截(与代理类冲突)
  20. 迅雷、旋风、快车链接转换
  21. 眼不见心不烦(微博)
  22. 印象笔记·剪藏
  23. 中国天气预报
  24. Adguard
  25. Click&Clean
  26. Fabulous
  27. Ghostery
  28. Google Mail Checker
  29. History Eraser
  30. Last.fm
  31. Photo Zoom for Facebook
  32. RSS Subscription
  33. Session Buddy
  34. SmoothScroll
  35. Speed Dial
  36. UxxxltraSurf
  37. Unblock Youku
  38. Adfree Player Online
  39. Advanced Font Settings
  40. Chrome Apps Developer Tool
  41. EditThisCookie
  42. IPvFoo
  43. Referer Control
  44. Smart Header
  45. Stylish
  46. The Great Suspender
  47. uBlock Origin
  48. uMatrix
  49. Vimium
  50. Chrono下载管理器
  51. EagleGet Free Downloader
  52. Free Download Manager
  53. Imagus
  54. Neater Bookmarks
  55. Popup my Bookmarks
  56. SimpleExtManager
  57. smartUp手势
  58. Yet Another Drag and Go
  59. 划词翻译
  60. 右键搜