0X01 前言
前阵子面试,2次被问到sqlmap的force-ssl参数,我之前sqlmap用的少,这个参数更是从来没见过…
不过似乎2个乙方的面试官也不完全理解它的用法🤔
第一家的面试官:sqlmap跑https网站必须用的参数是什么?
第二家的面试官:https站拿sqlmap直接跑吗?还是需要用什么参数?
后面根据面试官的问题我搜到了sqlmap的一个参数:–force-ssl
由此,我产生了一连串疑问:
1. force-ssl参数作用是什么?
2. 只要是https网站就必须要加force-ssl参数吗?
3. 为什么加force-ssl参数就可以扫描https网站了呢?
0X02 结论
什么情况下需要使用force-ssl参数?先说结论⬇️
1. 网站只能使用https访问
且
2. sqlmap从文本中读取数据包时(参数-r)
(注:如果网站同时支持http和https,那用不用--force-ssl参数都行)
原因很简单:
sqlmap在从文本中读取数据包时(常与-r参数搭配)默认使用 HTTP 连接,此时需要加force-ssl参数强制使用 SSL 进行 443/tcp 连接。
0X03 探究+得出结论
拿出一开始产生的疑惑…
1. 只要是https网站就必须要加force-ssl参数吗?
那我找个https网站试试不就好啦✌️
跑下https网站的url,看结果没报错呀,是可以扫的哇!扫个数据包试试,诶?报错了!不能连接目标URL!!
加上force-ssl参数试试嘞?报错消失了。
那就说明在使用sqlmap扫描时,不是所有的https网站都需要用到这个参数呀!
2. force-ssl参数作用是什么?
3. 什么情况下扫描https网站需要带上force-ssl参数?
4. 为什么加force-ssl参数就可以扫描https网站了呢?
从中文版sqlmap用户手册的一处我们得知:
sqlmap 只能从文本中读取http请求,如果想读取https请求,就要加–force-ssl参数!!
从中文版sqlmap用户手册的另一处我们得知:
–force-ssl参数可以让被扫描目标强制走SSL/HTTPS请求。
OK,问题结束,总结:
只支持https协议访问的网站,在使用sqlmap扫描数据包时,需要添加–force-ssl参数。
基础命令如下:
sqlmap -r 1.txt --force-ssl
那现在回头再看两位面试官的提问:
第一家的面试官:sqlmap跑https网站必须用的参数是什么?
第二家的面试官:https站拿sqlmap直接跑吗?还是需要用什么参数?
是不是发现,他们的问法其实也侧面反映出他们没完全掌握这个知识点呢😆