一些学习中的随笔小记(二)

一些学习中的随笔小记(二)

记录一些平时学习中零碎的知识点,一篇记录20个小知识点。

1.利用sql注入点判断网站和数据库是否站库分离

在注入点后加上:and exists(select * from admin where 1=(Select (case when host_name()=@@servername then 1 else 0 end)))
注意admin一定要是存在的表段,如果返回正常,说明网站和数据库是在同一服务器,如果不正常则说明是站库分离的。

2.shell如何输出每一行的最后几个字符

输出每一行的最后几个字符, 可以借助于awk,以及substr函数,awk没有分隔符时$0表示每一行

cat test.txt |awk ‘{print substr($0,length($0)-n)}’
其中的n表示字符长度,如果要输出每行最后10个字符,就把n改为10。

要输出每行的前n个字符,除了可以使用awk+substr,还可以使用cut

cat test.txt| cut -c1-n
其中n为你想输出的前几个字符,你想输出前5个,就把n改为5。

3.给 Windows /Linux 的终端配置代理

Windows在cmd下执行下面的命令

set http_proxy=http://127.0.0.1:1080 set https_proxy=http://127.0.0.1:1080

Linux下临时生效则终端直接执行即可

export http_proxy="http://localhost:port" export https_proxy="http://localhost:port"


永久生效则需要将上面的命令写入shell配置文件.bashrc

保存后执行下面命令使其生效
source ~/.bashrc

4./bin/bash^M: bad interpreter解决方法

在windows下保存了一个脚本文件,用ssh上传到centos,并执行。但执行的时候出现了这句错误。

如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A。如果你将这个脚本文件直接放到Linux上执行就会报/bin/bash^M: bad interpreter错误提示。

解决:1)在windows下转换:
比如notepad++


2)也可在Linux中转换:
首先要确保文件有可执行权限
#sh>chmod a+x filename
然后修改文件格式
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盘退出)
最后再执行文件
#sh>./filename

5.解决Can ‘t connect to local MySQL server through socket ‘/tmp/mysql.sock ‘(2) “;

由于把mysql的套接字文件不小心删除了。

root@zgao:~# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

需要明白mysql.sock这个文件有什么用?

连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。

如果你因为丢失套接字文件而不能连接,你可以简单地通过重启mysql服务重新创建得到它。因为服务器在启动时重新创建它。

6.Goland设置ssh终端为utf-8编码

在IDE的设置中搜索encoding。

这个是设置文件的编码的,ssh终端的编码在下面。

不仅goland,同理其他如pycharm,idea都是这样设置的。

7.MySQL解除输入的安全模式

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.
这是因为MySql运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令。

1、show variables like ‘SQL_SAFE_UPDATES’;查看开关状态。
2、执行命令SET SQL_SAFE_UPDATES = 0;修改下数据库模式

8.更改windows上的远程桌面RDP的侦听端口

适用于:Windows 10、Windows 8.1、Windows 8、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2008 R2

通过远程桌面客户端连接到计算机(Windows 客户端或 Windows Server)时,计算机上的远程桌面功能会通过定义的侦听端口(默认情况下为 3389)“侦听”连接请求。 可以通过修改注册表来更改 Windows 计算机上的侦听端口。

  1. 启动注册表编辑器。 (在“搜索”框中键入 regedit。)
  2. 导航到以下注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
    tip:直接按下 Ctrl+f 搜索 RDP-Tcp 即可
  3. 查找端口号
  4. 单击“编辑”>“修改” ,然后单击“十进制” 。
  5. 键入新端口号,然后单击“确定” 。
  6. 关闭注册表编辑器,然后重新启动计算机。

下次使用远程桌面连接连接到此计算机时,必须键入新端口。 如果正在使用防火墙,请确保将防火墙配置为允许连接到新端口号。

9.Wireshark 设置显示端口号

在Wireshark中,打开编辑->首选项设置->列->按“添加”按钮->在字段类型中选择“Dest port(unresolved)”即可。

10.增加 WordPress 上传附件大小的限制

我们需要上传尺寸比较大的附件到 WordPress 站点,可是上传的时候,WordPress 却提示我们「最大上传文件大小: 2 MB。其实很多时候,这个限制不是 WordPress 干的,而是我们的服务器锅,为了安全和性能考虑,服务器软件会有一些默认的限制。

我们知道,PHP 服务器的主要设置一般都在 php.ini 文件里面,想要增大 PHP 允许上传的最大附件尺寸,我们首先需要找到 php.ini 的位置,然后编辑这个文件里面对应的设置项。

找到 php.ini 文件,在服务器上,运行下面的命令,可以很容易的找到 php 文件的位置。

php -i | grep 'php.ini'   

上面的命令运行之后,其中的 /usr/local/etc/php/7.3/php.ini 就是我们需要找的 php.ini 文件的位置。编辑这个文件,修改或加入以下设置。

upload_max_filesize = 128M
post_max_size = 128M
memory_limit 256M
max_execution_time 300
max_input_time 300

这些设置项都有各自的作用。

  • upload_max_filesize: 最大上传尺寸
  • post_max_size: POST 请求最大尺寸
  • memory_limit: PHP 进程可以使用的内存限制
  • max_execution_time:PHP 程序的最大执行时间
  • max_input_time:最大输入时间

其中影响最大上传尺寸的设置项是 upload_max_filesize 和 post_max_size,其他几个选项主要是为了防止上传程序使用过多的内存和因为网络原因造成的执行时间过长,导致网站速度变慢。然后执行

php-fpm restart

刷新一下页面,再打开附件上传页面看看,我们会发现,最大上传文件的尺寸已经变成了 128MB,这说明我们的设置已经生效了。

11.npm换源

npm 全称Node Package Manager,是node.js的模块依赖管理工具。由于npm的源在国外,所以国内用户使用起来各种不方便。

镜像举例:1.临时使用
npm --registry https://registry.npm.taobao.org install express

2.持久使用
npm config set registry https://registry.npm.taobao.org
// 配置后可通过下面方式来验证是否成功
npm config get registry
// 或npm info express

3.通过cnpm使用
npm install -g cnpm –registry=https://registry.npm.taobao.org
// 使用cnpm install expresstall express

12.给git设置代理

这里以v2ray作为前置代理为例。

# socks5协议,1080端口修改成自己的本地代理端口

git config –global http.proxy socks5://127.0.0.1:1080
git config –global https.proxy socks5://127.0.0.1:1080

# http协议,1081端口修改成自己的本地代理端口

git config –global http.proxy http://127.0.0.1:1081
git config –global https.proxy https://127.0.0.1:1081

13.Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work

解决办法:# vi /etc/sysctl.conf
或者# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:   
net.ipv4.ip_forward=1
重启network服务# systemctl restart network
查看是否修改成功#  sysctl net.ipv4.ip_forward
如果返回为“ net.ipv4.ip_forward = 1 ”则表示成功了
这时,重启容器即可。

14.Windows查看最近访问的文件目录或文件夹

1.Windows+R
2.输入Recent

就能看到最近访问的文件了

经测试发现C盘Windows目录下的文件夹都可以通过运行窗口的方式打开。

15.linux服务器之间传输文件的四种方式

1. scp

【优点】简单方便,安全可靠;支持限速参数 
【缺点】不支持排除目录
【用法】
scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。 使用时建议先使用ssh-copy-id复制主机的私钥,这样就不用每次都输用户密码了。

2. rcp

【概述】
目标主机需要事先打开rcp功能,并设置好rcp的权限:把源主机加入到可信任主机列表中,否则无法在源主机上使用rcp远程复制文件到目标主机。  yum -y install rsh rsh-server xinetd

3. wget
 【优点】简单方便,支持排除目录,支持限速参数
 【缺点】只能从远程机器将文件或文件夹下载到本地,并且远程机器需要支持ftp服务(例如启动proftpd);参数较多,使用上比scp复杂
 【用法】 
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。 
命令格式: 
wget [参数] ftp://<目标机器ip或主机名>/<文件的绝对路径>

4. rsync
【优点】功能强大,操作类似scp,支持排除目录,支持限速参数;还支持本地复制。 
【缺点】暂无
 【用法】 
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的操作方式和scp和相似,但是比scp强大很多。使用双冒号分割主机名和文件路径时,是使用rsync服务器,这里不做介绍。 
命令格式: 
rsync [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径> 

赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。