您的位置:

Burp Suite使用指南

一、Burp Suite基础

Burp Suite是一款用于Web应用安全测试的工具集,它由PortSwigger Web Security创建和维护。Burp Suite的功能非常强大,包括拦截器、扫描器、代理、Spider(爬虫)等。在使用Burp Suite之前,我们需要有一些基础知识:

1、HTTP协议:在使用Burp Suite之前,需要对HTTP协议有一定的了解,例如HTTP请求和响应的结构、HTTP状态码等。

2、代理:Burp Suite中的代理是其最基本的功能,因此我们需要对代理工作方式和代理设置有所了解。

3、爬虫:Burp Suite自带的Spider(爬虫)工具可以对Web应用进行自动化测试,如果需要使用爬虫进行测试,则需要对爬虫工作原理有所了解。

二、使用Burp Suite拦截HTTP请求

在Web应用测试过程中,经常需要对HTTP请求进行修改或拦截。Burp Suite的拦截器功能可以满足这种需求。

1、拦截器设置

在Burp Suite中,点击Proxy->Options,打开Proxy Interception页面,将Intercept Requests和Intercept Responses设置为ON。这样可以拦截我们手动发送的HTTP请求和接收的HTTP响应。


// 拦截器设置示例代码
proxy.setRequestInterception(true);
proxy.setResponseInterception(true);

2、拦截器工作模式

Burp Suite的拦截器工作模式有两种,Manual(手动)和Automatic(自动)。

Manual模式下,Burp Suite会拦截所有通过其代理发送出去的HTTP请求和响应,用户可以在拦截器页面手动选择哪些请求或响应需要被修改或拦截。

Automatic模式下,Burp Suite只拦截那些满足用户设置的规则的请求和响应。用户可以在Proxy->Options->Match and Replace页面设置拦截规则。


// Automatic模式设置示例代码
IInterceptedProxyMessage msg = message.getMessageInfo();
if (msg.isRequest()) {
    IRequestInfo req = helpers.analyzeRequest(msg.getMessage());
    if (req.getUrl().toString().contains("example.com")) {
        msg.setInterceptAction(IInterceptedProxyMessage.ACTION_DO_INTERCEPT);
    }
}

三、Burp Suite扫描器使用

在Web应用中,经常会出现各种漏洞,包括SQL注入、XSS攻击、CSRF攻击等。Burp Suite中的扫描器可以对Web应用进行自动化测试,检测各种漏洞。

1、扫描器设置

打开Burp Suite,在Scanner->Options页面中可以设置扫描器的各种选项,包括漏洞字典、爬虫选项、漏洞检测选项等。


// 扫描器设置示例代码
IScannerInsertionPointProvider insertionProvider = new CustomInsertionPointProvider();
ICookieJar cookies = new CustomCookieJar();
IScanner scanner = new Scanner(burp, insertionProvider, cookies);
scanner.setOption(IScannerOptionNames.INCLUDE_UNFOLLOWABLE, false);
scanner.setOption(IScannerOptionNames.ENABLE_SCANNER, true);

2、扫描器使用

使用扫描器测试Web应用时,需要先使用爬虫对Web应用进行爬取,获取所有的链接。然后使用扫描器对每个链接进行测试,检测是否存在漏洞。


// 扫描器使用示例代码
IScanner scanner = burp.getScanner();
IScannerInsertionPointProvider insertionProvider = new CustomInsertionPointProvider();
ICookieJar cookies = new CustomCookieJar();
IScanQueueItem item = scanner.doActiveScan(
    url,
    insertionProvider,
    cookies,
    new HashMap
   ());

   

四、Burp Suite代理使用

Burp Suite的代理功能可以将请求和响应拦截下来,进行修改、记录。在测试Web应用时,经常需要使用代理功能。

1、代理设置

Burp Suite的代理默认侦听端口为8080,如果需要修改端口,则可以在User Options->Connections页面中进行设置。


// 代理设置示例代码
ProxyListener listener = new CustomProxyListener();
burp.addListener(listener);

2、代理使用

使用代理进行测试时,可以使用Burp Suite自带的浏览器或者手动设置浏览器代理来实现。


// 代理使用示例代码
HttpClientBuilder builder = HttpClientBuilder.create();
HttpHost proxy = new HttpHost("127.0.0.1", 8080, "http");
builder.setProxy(proxy);
CloseableHttpClient httpClient = builder.build();

五、Burp Suite其他功能

Burp Suite还有很多其他的功能,例如Repeater、Intruder、Sequencer等,这里只列举一些比较重要的功能。

1、Repeater

Repeater可以对HTTP请求进行重复发送,并对响应进行比较,用于测试请求是否具有重放性。

2、Intruder

Intruder可以对HTTP请求的指定部分进行模糊测试,用于测试Web应用接收输入时的容错能力。

3、Sequencer

Sequencer可以对Web应用生成的随机数进行序列化,用于测试随机数生成算法的安全性。

六、总结

Burp Suite是一款功能强大的Web应用测试工具集,可以满足Web应用测试的各个方面需求。使用Burp Suite需要对HTTP协议、代理、爬虫、漏洞种类等有一定的了解,掌握这些知识后,可以更有效地使用Burp Suite进行Web应用测试。