首页
留言
导航
统计
Search
1
追番推荐!免费看动漫的网站 - 支持在线观看和磁力下载
2,512 阅读
2
推荐31个docker应用,每一个都很实用
1,312 阅读
3
PVE自动启动 虚拟机 | 容器 顺序设置及参数说明
931 阅读
4
一条命令,永久激活!Office 2024!
618 阅读
5
优选 Cloudflare 官方 / 中转 IP
490 阅读
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
登录
Search
标签搜索
Java
小程序
Redis
SpringBoot
docker
Typecho
Cloudflare
docker部署
虚拟机
WordPress
群晖
uni-app
CentOS
Vue
Java类库
Linux命令
防火墙配置
Mysql
脚本
Nginx
微醺
累计撰写
264
篇文章
累计收到
11
条评论
首页
栏目
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
页面
留言
导航
统计
搜索到
38
篇与
的结果
2023-07-08
常见内网穿透工具,收好了!
前言本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法。1. nps-npc1.1 简介nps 是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持 tcp、udp 流量转发,可支持任何 tcp、udp上层协议 (访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。一台有公网IP的服务器(VPS)运行服务端(NPS)一个或多个运行在内网的服务器或者PC运行客户端(NPC)1.2 特点Go语言编写支持跨平台支持多种协议的代理web管理端1.3 使用方法https://github.com/ehang-io/nps/releases1.4 NPS安装配置 找到自己服务器相应版本的server:cd ~ wget https://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gz tar xzvf linux_amd64_server.tar.gz cd ~/nps 在nps目录下面会有一个nps可执行文件、conf配置目录和web网页目录,我们只需要修改 conf/nps.conf 即可:vim conf/nps.conf 需要改一下 #web 下面的几个参数,web_host= 服务器IP或者域名 web_username= admin(登录用户名) web_password= 你的密码 web_port=8080(web管理端口) 修改 #bridge 可以更改 NPC 的连接端口。比如我们拿到一台权限受限的服务器,有防火墙,可能只有部分端口(80,443)可以出网,就需要修改成出网端口。##bridge bridge_type=tcp bridge_port=443 # 修改连接端口 bridge_ip=0.0.0.0 启动#Mac/Linux ./nps test|start|stop|restart|status 测试配置文件|启动|停止|重启|状态 #Windows nps.exe test|start|stop|restart|status 测试配置文件|启动|停止|重启|状态 1.5 NPC./npc -server=你的IP:8024 -vkey=唯一验证密码 -type=tcp 新建好客户端后,也可以在 + 中看到,详细的客户端连接命令:1.6 web管理端在客户端界面可以通过新增的方式添加客户端连接,每一个连接的vkey都是唯一区分的。每一个客户端,在建立连接后,都可以建立多个不同协议的隧道,这一个个隧道就是不同的代理了。通过不同的协议和端口就可以连接代理的内网机器。2. frp2.1 简介frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。2.2 特点客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。端口复用,多个服务通过同一个服务端端口暴露。跨平台,但是支持的比nps少一点多种插件,提供很多功能2.3 使用方法下载:https://github.com/fatedier/frp/releases以下内容摘自:https://segmentfault.com/a/11900000218768361). 通过 rdp 访问家里的机器修改 frps.ini 文件,为了安全起见,这里最好配置一下身份验证,服务端和客户端的 common 配置中的 token 参数一致则身份验证通过:# frps.ini [common] bind_port = 7000 # 用于身份验证,请自行修改,要保证服务端与客户端一致 token = abcdefgh启动 frps:./frps -c ./frps.ini修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x:# frpc.ini [common] server_addr = x.x.x.x server_port = 7000 # 用于身份验证,请自行修改,要保证服务端与客户端一致 token = abcdefgh [rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 6000 启动 frpc:./frpc -c ./frpc.ini通过 rdp 访问远程的机器,地址为:x.x.x.x:6000开机自启 针对 Windows 系统,为了便于使用,可以配置一下开机的时候静默启动。在 frpc.exe 的同级目录创建一个 start_frpc.vbs'start_frpc.vbs '请根据实际情况修改路径 CreateObject("WScript.Shell").Run """D:\Program Files\frp_windows_amd64\frpc.exe""" & "-c" &"""D:\Program Files\frp_windows_amd64\frpc.ini""",0 复制 start_frpc.vbs 文件,打开以下目录,注意将 <USER_NAME> 改为你的用户名C:\Users\<USER_NAME>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 鼠标右击,粘贴为快捷方式即可。 2). 通过 SSH 访问公司内网机器frps 的部署步骤同上。启动 frpc,配置如下:# frpc.ini [common] server_addr = x.x.x.x server_port = 7000 # 用于身份验证,请自行修改,要保证服务端与客户端一致 token = abcdefgh [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 通过 SSH 访问内网机器,假设用户名为 testssh -oPort=6000 test@x.x.x.x3). 通过自定义域名访问部署于内网的 Web 服务有时想要让其他人通过域名访问或者测试我们在本地搭建的 Web 服务,但是由于本地机器没有公网 IP,无法将域名解析到本地的机器,通过 frp 就可以实现这一功能,以下示例为 http 服务,https 服务配置方法相同, vhost_http_port 替换为 vhost_https_port, type 设置为 https 即可。修改 frps.ini 文件,设置 http 访问端口为 8080:# frps.ini [common] bind_port = 7000 vhost_http_port = 8080 # 用于身份验证,请自行修改,要保证服务端与客户端一致 token = abcdefgh 启动 frps:./frps -c ./frps.ini修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x,local_port 为本地机器上 Web 服务对应的端口,绑定自定义域名 www.yourdomain.com:# frpc.ini [common] server_addr = x.x.x.x server_port = 7000 # 用于身份验证,请自行修改,要保证服务端与客户端一致 token = abcdefgh [web] type = http local_port = 80 custom_domains = www.yourdomain.com 启动 frpc./frpc -c ./frpc.ini将 www.yourdomain.com 的域名 A 记录解析到 IP x.x.x.x,如果服务器已经有对应的域名,也可以将 CNAME 记录解析到服务器原先的域名。通过浏览器访问 http://www.yourdomain.com:8080 即可访问到处于内网机器上的 Web 服务。4). 对外提供简单的文件访问服务通过 static_file 插件可以对外提供一个简单的基于 HTTP 的文件访问服务。frps 的部署步骤同上。启动 frpc,启用 static_file 插件,配置如下:# frpc.ini [common] server_addr = x.x.x.x server_port = 7000 # 用于身份验证,请自行修改,要保证服务端与客户端一致 token = abcdefgh [test_static_file] type = tcp remote_port = 6000 plugin = static_file # 要对外暴露的文件目录 plugin_local_path = /tmp/file # 访问 url 中会被去除的前缀,保留的内容即为要访问的文件路径 plugin_strip_prefix = static plugin_http_user = abc plugin_http_passwd = abc 通过浏览器访问 http://x.x.x.x:6000/static/ 来查看位于 /tmp/file 目录下的文件,会要求输入已设置好的用户名和密码。常用功能 (1)统计面板通过浏览器查看 frp 的状态以及代理统计信息展示。注:Dashboard 尚未针对大量的 proxy 数据展示做优化,如果出现 Dashboard 访问较慢的情况,请不要启用此功能。需要在 frps.ini 中指定 dashboard 服务使用的端口,即可开启此功能:[common] dashboard_port = 7500 # dashboard 用户名密码,默认都为 admin dashboard_user = admin dashboard_pwd = admin 打开浏览器通过 http://[server_addr]:7500 访问 dashboard 界面,用户名密码默认为 admin。(2)加密与压缩这两个功能默认是不开启的,需要在 frpc.ini 中通过配置来为指定的代理启用加密与压缩的功能,压缩算法使用 snappy :# frpc.ini [ssh] type = tcp local_port = 22 remote_port = 6000 use_encryption = true use_compression = true 如果公司内网防火墙对外网访问进行了流量识别与屏蔽,例如禁止了 SSH 协议等,通过设置 use_encryption = true,将 frpc 与 frps 之间的通信内容加密传输,将会有效防止流量被拦截。如果传输的报文长度较长,通过设置 use_compression = true 对传输内容进行压缩,可以有效减小 frpc 与 frps 之间的网络流量,加快流量转发速度,但是会额外消耗一些 CPU 资源。(3)TLS从 v0.25.0 版本开始 frpc 和 frps 之间支持通过 TLS 协议加密传输。通过在 frpc.ini 的 common 中配置 tls_enable = true 来启用此功能,安全性更高。为了端口复用,frp 建立 TLS 连接的第一个字节为 0x17。注意:启用此功能后除 xtcp 外,不需要再设置 use_encryption。 (4)代理限速目前支持在客户端的代理配置中设置代理级别的限速,限制单个 proxy 可以占用的带宽。# frpc.ini [ssh] type = tcp local_port = 22 remote_port = 6000 bandwidth_limit = 1MB 在代理配置中增加 bandwidth_limit 字段启用此功能,目前仅支持 MB 和 KB 单位。(5)范围端口映射在 frpc 的配置文件中可以指定映射多个端口,目前只支持 tcp 和 udp 的类型。这一功能通过 range: 段落标记来实现,客户端会解析这个标记中的配置,将其拆分成多个 proxy,每一个 proxy 以数字为后缀命名。例如要映射本地 6000-6005, 6007 这 6 个端口,主要配置如下:# frpc.ini [range:test_tcp] type = tcp local_ip = 127.0.0.1 local_port = 6000-6006,6007 remote_port = 6000-6006,6007 实际连接成功后会创建 8 个 proxy,命名为 test_tcp_0, test_tcp_1 ... test_tcp_7。3. ngrok3.1 简介ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地协助服务端程序测试。4.2 特点官方维护,一般较为稳定跨平台,闭源有流量记录和重发功能4.3 使用方法进入ngrok官网(https://ngrok.com/),注册ngrok账号并下载ngrok;根据官网给定的授权码,运行如下授权命令;./ngrok authtoken 1hAotxhmORtzCYvUc3BsxDBPh1H_**./ngrok http 80即可将机器的80端口http服务暴露到公网,并且会提供一个公网域名。可以通过官网的UI界面查看数据包和流量等等(但是要付费==、)还可以通过一些命令将内网的文件和其他TCP服务 暴露到公网中。有授权的设置文件共享ngrok http -auth="user:password" file:///Users/alan/share 无授权的设置文件共享ngrok http "file:///C:\Users\alan\Public Folder" 将主机的3389的TCP端口暴露到公网ngrok tcp 3389 更多使用方法参考:https://ngrok.com/docs
2023年07月08日
25 阅读
0 评论
0 点赞
2023-07-07
再见了 Xshell、iTerm2、FinalShell,这款开源的终端工具真香
现目前的的远程终端工具有很多,功能齐全好用的收费,免费的功能外观又不怎么满意。XShell 收费而且感觉用起来也一般,putty 免费但很不方便,我们的 FinalShell 好用、功能齐全可以说是一款非常好的终端工具但外观总是觉得不尽人意。直到我发现这款「Tabby」。引言Tabby 是一个高度可配置的终端模拟器、SSH 和串行客户端,适用于 Windows、macOS 和 Linux。特性集成的 SSH 和 Telnet 客户端和连接管理器集成串口终端主题和配色方案完全可配置的快捷键和多和弦快捷键拆分窗格记住你的标签PowerShell(和 PS Core)、WSL、Git-Bash、Cygwin、MSYS2、Cmder 和 CMD 支持通过 Zmodem 从/到 SSH 会话的直接文件传输完整的 Unicode 支持,包括双角字符不会因快速流动的输出而窒息Windows 上的正确 shell 体验,包括选项卡完成(通过 Clink)用于 SSH 机密和配置的集成加密容器SSH、SFTP 和 Telnet 客户端可用作 Web 应用程序 (也可自托管)。地址GitHub:https://github.com/Eugeny/tabby官网:https://tabby.sh/在线体验:https://tabby.sh/app 大家可以先在线体验,这个还挺厉害的功能介绍默认打开是本地终端,如果对本地终端工具不满意也可以试试它创建远程连接点击右上角齿轮点击左侧菜单的 Profiles&connections点击蓝色按钮 New profile 添加新的远程连接选择第一个,创建 SSH 连接填入服务器信息等,保存连接点击窗口按钮选中你创建的远程连接支持FTP 没错他直接支持文件的上传和下载总结Tabby 市面上少见的既好用又好看还免费开源的远程终端工具。
2023年07月07日
57 阅读
0 评论
0 点赞
2023-07-06
利用docker搭建home-assistant打造全屋智能
home-assistant 安装打开注册表搜索 homeassistant/home-assistant 下载 docker映像 下载完成后启动网络类型一定 不要选择bridge ,选择 bridge-host 或者 host 否则未在同一局域网 homekit 无法绑定选择高级-添加环境变量-保存TZ:Asia/Shanghai端口本地 8321 - 容器 8321,如果选择的 host 则不需要设置端口添加一个文件夹并装载到 /config,完成并运行容器Home Assistant 安装 HACS什么是 HACS?HACS 可以理解为 Home Assistant 上的一个第三方应用商店打开容器详情页面-选择终端-新建命令右键粘贴并运行以下命令wget -O - https://get.hacs.xyz | bash -运行完成后重启容器浏览器打开并输入 群晖ip + 端口8123 并访问根据向导完成并创建自己的账号点击「配置」,点击「集成」,点击右下角的「添加集成」,在搜索框里输入「HACS」并点击,接受协议。需要全选,无法不选。点击「提交」,设备注册。需要先拥有Github账号,没有的话注册一个并在浏览器上登录。打开 HACS商店 浏览并下载存储库:Xiaomi Miot Auto,下载完成后重启容器重新登录后打开 配置-设备与服务-添加集成-搜索xiaomi-安装Xiaomi Miot Auto-选择账号集成模式配置 HomeKit 后打开通知手机扫描二维码后即可使用iphone控制小米设备
2023年07月06日
25 阅读
0 评论
0 点赞
2023-07-06
解决WordPress开启CDN后评论IP不正确的方法
前言最近启用CDN内容分发后发现评论评论人的IP都是CDN的节点IP(也有可能是服务器IP),由于使用CDN后访问用户服务器的IP都变成CDN服务器的IP。百度一下,发现了一个好的方法。只要添加一段代码,IP地址就可以正常了,其实CDN在头部应该有把访问者IP发送的,那段代码就是把 wordpress 的 ip 中变量换成 $_SERVER 获取的。这个可以用在任意CDN和反代里面,IP地址可以获取正确的。在 WordPress 安装根目录 下面 wp-config.php 文件,打开后,在其内添加下面代码:if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $list[0]; }
2023年07月06日
45 阅读
0 评论
0 点赞
2023-06-29
群晖 DMS7.0 Video Station 支持 DTS 和 eac3 解决方案
Video Station 一直是我必装并且使用频繁的套件。但一直有个问题比较困扰,如果下载的是高清视频,经常会提示不支持当前所选音频的文件格式,因此无法播放视频。请尝试其它音轨。 具体原因我不过多赘述,在网上找了一些方案基本都是搬运,所以我翻阅了很多资料,经过尝试之后成功解决。在这里把过程记录下来,各位如果有相同问题的可以用来参考。下面开始操作。首先安装社区版FFMPEG社区地址:http://packages.synocommunity.com套件中心 > 社群 > ffmpeg开启SSH可设置自定义端口或使用默认端口使用终端连接群晖依次输入以下命令:# 切换到root权限,回车后输入管理员密码即可 sudo -i # 保存 Video Station 使用的 ffmpeg mv -n /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg.orig # 注入脚本 wget -O - https://gist.githubusercontent.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e/raw/ffmpeg-wrapper > /var/packages/VideoStation/target/bin/ffmpeg # 更改脚本的所有权和模式 chown root:VideoStation /var/packages/VideoStation/target/bin/ffmpeg chmod 750 /var/packages/VideoStation/target/bin/ffmpeg chmod u+s /var/packages/VideoStation/target/bin/ffmpeg # 保存 Video Station 的 libsynovte.so cp -n /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.orig chown VideoStation:VideoStation /var/packages/VideoStation/target/lib/libsynovte.so.orig # 使libsynovte.so 支持 DTS, EAC3, TrueHD sed -i -e 's/eac3/3cae/' -e 's/dts/std/' -e 's/truehd/dheurt/' /var/packages/VideoStation/target/lib/libsynovte.so替换群晖使用的 FFmpeg命令 调用的相关文件(注意DMS6.0和DMS7.0不同):DMS6.0mv /var/packages/CodecPack/target/bin/ffmpeg33 /var/packages/CodecPack/target/bin/ffmpeg33.orig cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/bin/ffmpeg33DMS7.0mv /var/packages/CodecPack/target/bin/ffmpeg41 /var/packages/CodecPack/target/bin/ffmpeg41.orig cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/bin/ffmpeg41重启Video Station套件通过套件中心进行Video Station的重启后续的更新更新只需要执行以下命令即可:wget -O - https://gist.githubusercontent.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e/raw/ffmpeg-wrapper > /var/packages/VideoStation/target/bin/ffmpeg还原与卸载如果出现了问题,或者不想用了。执行以下命令即可还原:# 还原 Video Station 官方使用的 ffmpeg 与 libsynovte.so mv -f /var/packages/VideoStation/target/bin/ffmpeg.orig /var/packages/VideoStation/target/bin/ffmpeg mv -f /var/packages/VideoStation/target/lib/libsynovte.so.orig /var/packages/VideoStation/target/lib/libsynovte.so mv -f /var/packages/CodecPack/target/bin/ffmpeg41.orig /var/packages/CodecPack/target/bin/ffmpeg41当然,你也可以在套件中心卸载重装 Video Station 套件,来达到还原的效果。操作完之后,一切正常,Synology Photos也都正常有缩略图和播放。又能愉快的通过Video Station套件看片了。
2023年06月29日
41 阅读
0 评论
0 点赞
2023-06-29
SQL注入介绍看这一篇就够了
SQL注入会引发什么问题?SQL注入 是一种 对数据库的恶意攻击 ,注入进去的恶意指令就会被误认为是正常的SQL指令而执行,因此遭到破坏或是入侵。什么是SQL注入?SQL注入(英语:SQL injection) ,也称SQL注入或SQL注码,是发生于应用程序与数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了字符检查,那么这些注入进去的恶意指令就会被数据库服务器误认为是正常的SQL指令而执行,因此遭到破坏或是入侵。为什么会发生SQL注入?在设计不良的应用程序中,对用户输入数据的合法性并没有判断或过滤不严导致。如图中所示,没有对客户端用户输入的数据合法性进行检查或过滤,导致客户端用户可以任意构造自己想要的参数,达成SQL注入条件,最终引发严重的后果,如果在账号登录成功SQL注入,那么就可以成功登录他人的账号,使用对他人的账号进行一系列破环手段,比如黑客通过SQL注入成功登录你的微信,可以使用你微信里面的余额,给你的家人朋友发钓鱼链接等等。当然SQL注入的危害远不止可以成功登录他人的账号,还有可能造成的伤害如下资料表中的资料外泄,例如企业及个人 机密资料,账户资料,密码 等;数据结构被黑客探知,得以做进一步攻击(例如 SELECT * FROM sys.tables );数据库服务器被攻击,系统管理员账户被窜改(例如 ALTER LOGIN sa WITH PASSWORD='xxxxxx' );获取系统较高权限后,有可能得以在网页加入恶意链接、恶意代码以及 Phishing 等;经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统(例如 xp_cmdshell "net stop iisadmin" 可停止服务器的 IIS服务 );攻击者利用数据库提供的各种功能操纵文件系统,写入Webshell,最终导致攻击者攻陷系统;破坏硬盘资料,瘫痪全系统(例如 xp_cmdshell "FORMAT C:" );获取系统最高权限后,可针对企业内部的任一管理系统做大规模破坏,甚至让其企业倒闭;网站主页被窜改,导致声誉受到损害。总之作为程序设计者,需要保证程序的健壮性避免被 SQL注入攻击 。如何避免SQL注入?所有的查询语句都使用数据库提供的 参数化查询(Parameterized Query) 接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中,当前几乎所有的数据库系统都提供了 参数化SQL语句 执行接口,使用此接口可以非常有效的防止 SQL注入攻击 ;set @name := xxx; set @pwd := xxx; select id from users where name = @name and pwd = @pwd在组合SQL字符串时,先针对所传入的参数加入其他字符,对进入数据库的特殊字符('<>&*;)等等进行转义处理;确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型;try: pwd = int(param.get("pwd")) except (TypeError, ValueError): return "pwd type must be int"数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行;name_max_length = 12 if len(param.get("name", "")) > name_max_length: return "name length cannot be greater than 12"网站每个数据层的编码统一,建议全部使用 UTF-8编码 ,上下层编码不一致有可能导致一些过滤模型被绕过;严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害;避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。案例这里分析一个案例1.数据库中先创建用户表及数据-- 创建一张用户表 CREATE TABLE `users` ( `id` INT(11) NOT NULL AUTO INCREMENT, `username` VARCHAR(20), `password` VARCHAR(50), PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8; -- 插入数据 INSERT INTO users(username,`password`) VALUES('张三','456123'),('李 四','qqatfv'),('王五','Qwe123'); INSERT INTO users(username,`password`) VALUES('小张','987456'),('小 王','ngjplg'),('小李','!@#$%^'); -- 查看数据 SELECT * FROM users; +----+----------+----------+ | id | username | password | +----+----------+----------+ | 1 | 张三 | 456123 | | 2 | 李四 | qqatfv | | 3 | 王五 | Qwe123 | | 4 | 小张 | 987456 | | 5 | 小王 | ngjplg | | 6 | 小李 | !@#$%^ | +----+----------+----------+ 6 rows in set (0.00 sec)2.编写一个登录程序import pymysql def login(): # 打开数据库连接 db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='12345', db='test', charset='utf8') # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() username = input('请输入用户名:') password = input('请输入密码:') sql = "select * from users where username = '%s' and password = '%s'" % (username, password) print(sql) # 执行SQL语句 cursor.execute(sql) results = cursor.fetchone() if results: print('登录成功') else: print('登录失败') # 关闭数据库连接 db.close()2.1.正常登录>>> login() 请输入用户名:>? 张三 请输入密码:>? 456123 select * from users where username = '张三' and password = '456123' 登录成功, 你好:张三2.2.登录失败>>> login() 请输入用户名:>? 张三 请输入密码:>? 123456 select * from users where username = '张三' and password = '123456' 用户名或密码错误,请重新输入2.3.模拟注入此处我们给SQL注入了一个 or '1' = '1' 的条件,此时不管密码是否正确都可以成功登录login() 请输入用户名:>? 张三 请输入密码:>? 123456' or '1' = '1' select * from users where username = '张三' and password = '123456' or '1' = '1' 登录成功, 你好:张三3.解决方法,采用参数化查询import pymysql def login(): # 打开数据库连接 db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='12345', db='test', charset='utf8') # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() username = input('请输入用户名:') password = input('请输入密码:') sql = "select * from users where username = %s and password = %s" # 执行SQL语句 cursor.execute(sql, (username, password)) results = cursor.fetchone() if results: print('登录成功, 你好:', username) else: print('用户名或密码错误,请重新输入') # 关闭数据库连接 db.close()3.1.正常登录>>> login() 请输入用户名:>? 张三 请输入密码:>? 456123 登录成功, 你好:张三3.2.登录失败>>> login() 请输入用户名:>? 张三 请输入密码:>? 123456 用户名或密码错误,请重新输入3.3.继续模拟注入此处我们给SQL注入了一个 or '1' = '1' 的条件,此时我们使用的是 参数化查询 方式有效的防止了SQL注入login() 请输入用户名:>? 张三 请输入密码:>? 123456' or '1' = '1' 用户名或密码错误,请重新输入
2023年06月29日
22 阅读
0 评论
0 点赞
2023-06-29
备用机消息转发神器:小转发
最近我新弄了一台水墨屏的手机看小说,同时因为它待机时间相对久一点,也可以作为备用机使用。为了保证它能上网,我从双卡双待的主力机中拿出了一张卡放了进去。但我并不想随时都带着两个手机,电话可以做来电转移,但是最常用的短信验证码很麻烦。幸好我们有 「小转发」 。安装 「小转发」 貌似很低调,没有找到它的官网,不过我们可以从酷安下载。如果你是在微信中阅读这篇文章,长按下图应该可以识别到二维码。什么是小转发 「小转发」是一个Android应用,它可以读取手机收到的短信和未接来电,并转发到微信。有了它,我们只需要把备用机接上电,扔到有网络的地方就可以不管它了(如果你担心长期充电不好,还可以接一个定时电源,每天充2个小时)使用 「小转发」 的界面很简单,安装完成后直接点击 「规则设置」 。再点击 「转发模式设置」 选项。输入 Sendkey 点击右上方的测试,如果能收到测试推送就发送成功了。优化 这个时候如果有短信发过来,我们就能收到微信通知了。但是很多手机厂商为了省电,会把长时间没有互动的应用从后台杀掉。这会让我们收不到新的转发,所以我们需要配置下系统权限。回到应用首页,点击 「白名单」 。点击 「确定」 按钮,对电池优化进行授权。需要注意的是,不同的手机厂商在这一块的优化策略不同,有时候可能无法弹出窗口,这就需要我们手动添加了,总之能保证「小转发」 一直在后台 就可以。最终效果 找台手机发条短信试试:
2023年06月29日
118 阅读
0 评论
0 点赞
2023-06-28
Linux 服务器必备的安全设置,建议收藏!!!
好不容易买了服务器,如果因为自己的疏忽,被黑客黑掉的话,那真的是太糟糕了!下面告诉你一些简单的方法提高服务器的安全系数,我的云服务器就是这么配置的,虽然有些麻烦,但是感觉安心一些。修改 ssh 登陆配置打开 ssh 配置文件vim /etc/ssh/sshd_config #修改以下几项 Port 10000 #更改SSH端口,最好改为10000以上,别人扫描到端口的机率也会下降。防火墙要开放配置好的端口号,如果是阿里云服务器,你还需要去阿里云后台配置开发相应的端口才可以,否则登不上哦!如果你觉得麻烦,可以不用改 Protocol 2 #禁用版本1协议, 因为其设计缺陷, 很容易使密码被黑掉。 PermitRootLogin no #尝试任何情况先都不允许 Root 登录. 生效后我们就不能直接以root的方式登录了,我们需要用一个普通的帐号来登录,然后用su来切换到root帐号,注意 su和su - 是有一点小小区别的。关键在于环境变量的不同,su -的环境变量更全面。 PermitEmptyPasswords no #禁止空密码登陆。最后需要重启 sshd 服务service sshd restart禁止系统响应任何从外部 / 内部来的 ping 请求echo "1"> /proc/sys/net/ipv4/icmp_echo_ignore_all其默认值为 0用户管理下面是基本的用户管理命令查看用户列表:cat /etc/passwd 查看组列表:cat /etc/group 查看当前登陆用户:who 查看用户登陆历史记录:last一般需要删除系统默认的不必要的用户和组,避免被别人用来爆破:userdel sync userdel shutdown # 需要删除的多余用户共有:sync shutdown halt uucp operator games gopher groupdel adm groupdel games # 需要删除的多余用户组共有:adm lp games dipLinux 中的帐号和口令是依据 /etc/passwd 、/etc/shadow、 /etc/group 、/etc/gshadow 这四个文档的,所以需要更改其权限提高安全性:chattr +i /etc/passwd chattr +i /etc/shadow chattr +i /etc/group chattr +i /etc/gshadow如果还原,把 +i 改成 -i , 再执行一下上面四条命令。注:i 属性:不允许对这个文件进行修改,删除或重命名,设定连结也无法写入或新增数据!只有 root 才能设定这个属性。创建新用户创建新用户命令:adduser username 更改用户密码名:passwd username个人用户的权限只可以在本 home 下有完整权限,其他目录要看别人授权。而经常需要 root 用户的权限,这时候 sudo 可以化身为 root 来操作。我记得我曾经 sudo 创建了文件,然后发现自己并没有读写权限,因为查看权限是 root 创建的。sudoers 只有只读的权限,如果想要修改的话,需要先添加 w 权限:chmod -v u+w /etc/sudoers 然后就可以添加内容了,在下面的一行下追加新增的用户:wq 保存退出,这时候要记得将写权限收回:chmod -v u-w /etc/sudoers赋予 root 权限方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉## Allows people in group wheel to run all commands # 去掉下面一句的前面的注释 # %wheel ALL=(ALL) ALL # 然后修改用户,使其属于root组(wheel),命令如下: # usermod -g root uusama修改完毕,现在可以用 uusama 帐号登录,然后用命令 su – ,即可获得 root 权限进行操作。方法二(推荐):修改 /etc/sudoers 文件,找到下面一行,在 root 下面添加一行,如下所示:## Allow root to run any commands anywhere root ALL=(ALL) ALL uusama ALL=(ALL) ALL修改完毕,现在可以用 uusama 帐号登录,然后用命令 sudo -s ,即可获得 root 权限进行操作。方法三:修改 /etc/passwd 文件,找到如下行,把用户 ID 修改为 0 ,如下所示:uusama:x:500:500:tommy:/home/uusama:/bin/bash # 修改后如下 uusama:x:0:500:tommy:/home/uusama:/bin/bash保存,用 uusama 账户登录后,直接获取的就是 root 帐号的权限。
2023年06月28日
49 阅读
0 评论
1 点赞
2023-06-26
群晖DSM VideoStation视频自动刮削 手把手教程
The Movie Database API 的申请 ▲注册The Movie Database账号,并进入账户设置界面。 ▲点击网页左面的API按钮。 ▲在创建选项中选择Develop 开发者选项。 ▲根据要求填写个人信息,应用URL随便填一个网址就行。 ▲之后备份红框中的 API密钥 待用。 开启群晖端SSH▲在DSM控制面板中进入终端机和 SNMP ▲选择启动 SSH功能 ,并点击 应用。 电脑端的操作▲找一台与群晖系统同一局域网的电脑,进入Winodws PowerShell。 ▲首先输入 ssh 群晖用户名@群晖的局域网IP -P 22 然后输入对应密码,连接上SSH后再输入 sudo -i 再输入管理员密码。 ▲再输入 cd /etc vi hosts ▲如果 .hosts.swp 文件已经存在,则需要按 E 进入。 ▲紧接着在 hosts 界面中按下 i 键盘进入 输入模式 ,将 13.226.238.82 api.themoviedb.org 加进 hosts 中,并按 ESC 退出输出模式,并输入 :wq 保存并退出hosts ▲最后,输入 rm .hosts.swp 删除hosts文件,之后一路输入 exit 直到退出Windows PowerShell。 群晖DSM Video Station中的设置▲进入VideoStation ▲在Video Station中依次点击设置按钮,选择视频信息插件页面,选择The Moive Database,点击编辑。 ▲将之前准备好的The Movie Database的API粘贴到这里,点击确定。 ▲紧接着进入视频库页面,点击再次搜索所有视频信息。 ▲刷新一下网页,你就可以发现Video Station已经可以自动刮削影视信息了。 最后为了方便大家设置,我把部分代码放在下面,方便大家复制: cd /etc vi hosts 13.226.238.82 api.themoviedb.org :wq rm .hosts.swp
2023年06月26日
38 阅读
0 评论
0 点赞
2023-06-26
ZeroTier——内网穿透工具
传统的内网穿透内网设备<——>中转服务器<———>网络设备(手机、电脑)弊端:中转服务器需要一定的费用进行支撑,如果是外网的服务器还可能存在被墙的风险。中转服务器直接决定了中转的“速度”,而这个“速度”越快其对应的服务器带宽就越大,通常来说价格也就越高。需要一定的知识储备来搭建内网穿透的服务端,虽然目前由于各种脚本的出现,门槛越来越低,但同时也会出现各种各样的问题,对于某些人来说解决起来较为繁琐、头疼。ZeroTier的内网穿透内网设备<——>移动、PC设备(手机、电脑)通常情况下是端到端的传输,如果网络环境差的话也会借助中转服务器进行传输数据。优势:操作极其简单,大体可以分为:创建账号—>创建访问密钥——>需要互通的设备安装zerotier客户端——>输入刚刚创建的访问密钥——>结束正常情况下不依赖服务器进行中转传输文件,端到端连接,理论可以达到满带宽。个人使用可以不需要额外的服务器费用开支,免费版本下可以支持一百个设备(不同或者相同网络环境)同时连入软件所创建的虚拟局域网,从而实现局域网内各个设备之间的无限制的访问。公网IP搞定群晖+ZEROTIER ONE实现内网穿透以下是官方网站和使用的方法:官方网站:https://www.zerotier.com/官方操作文档:点击进入
2023年06月26日
32 阅读
0 评论
1 点赞
1
2
3
4