35
35
36
36
编写代码如下:
37
37
38
- ```
38
+ ``` java
39
39
List<Keyword > keys = new ArrayList<> ();
40
40
keys. add(new Keyword .Builder (). setField_type(" table" ). setField_type(" test" ). build());
41
41
keys. add(new Keyword .Builder (). setField_name(" request" ). setField_type(" RequestInfo" ). build());
42
42
```
43
43
44
- 黑名单是定义那些属性中不可能包含要搜索的目标 ,防止无意义的搜索,浪费时间。如果把上面的例子当做黑名单,编写的代码也是类似的。
44
+ 黑名单是定义哪些属性中不可能存有要搜索的目标对象 ,防止无意义的搜索,浪费时间。如果把上面的例子当做黑名单,编写的代码也是类似的。
45
45
46
- ``` $xslt
46
+ ``` java
47
47
List<Blacklist > blacklists = new ArrayList<> ();
48
- blacklists.add(new Blacklist.Builder().setField_type ("table").setField_value("test").build());
49
- blacklists.add(new Blacklist.Builder().setField_type ("request").setField_type("RequestInfo").build());
48
+ blacklists. add(new Blacklist .Builder (). setField_name (" table" ). setField_value(" test" ). build());
49
+ blacklists. add(new Blacklist .Builder (). setField_name (" request" ). setField_type(" RequestInfo" ). build());
50
50
```
51
51
52
52
53
53
## 0x03 使用步骤
54
54
55
55
** 1. 将项目的java引入到目标应用的classpath中**
56
56
57
- ** 2. 在IDEA调试时,下好断点并在计算器中输入如下代码即可搜索 **
57
+ ** 2. 编写调用代码搜索目标对象 **
58
58
59
- 在编写代码之前先选好搜索器,并根据要搜索的目标特点,然后构造好关键字 (必须)和黑名单(非必须)。
59
+ 以搜索request对象为例,选好搜索器,并根据要搜索的目标特点构造好关键字 (必须)和黑名单(非必须),可写如下搜索代码到IDEA的 ` Evaluate ` 中执行 。
60
60
61
- ```
62
- //设置搜索类型包含ServletRequest,RequstGroup,Request...等关键字的对象
61
+ ``` java
62
+ // 设置搜索类型包含Request关键字的对象
63
63
List<Keyword > keys = new ArrayList<> ();
64
- keys.add(new Keyword.Builder().setField_type("ServletRequest").build());
65
- keys.add(new Keyword.Builder().setField_type("RequstGroup").build());
66
- keys.add(new Keyword.Builder().setField_type("RequestInfo").build());
67
- keys.add(new Keyword.Builder().setField_type("RequestGroupInfo").build());
68
64
keys. add(new Keyword .Builder (). setField_type(" Request" ). build());
65
+ // 定义黑名单
66
+ List<Blacklist > blacklists = new ArrayList<> ();
67
+ blacklists. add(new Blacklist .Builder (). setField_type(" java.io.File" ). build());
69
68
// 新建一个广度优先搜索Thread.currentThread()的搜索器
70
69
SearchRequstByBFS searcher = new SearchRequstByBFS (Thread . currentThread(),keys);
71
- //打开调试模式
70
+ // 设置黑名单
71
+ searcher. setBlacklists(blacklists);
72
+ // 打开调试模式,会生成log日志
72
73
searcher. setIs_debug(true );
73
74
// 挖掘深度为20
74
75
searcher. setMax_search_depth(20 );
@@ -77,5 +78,5 @@ searcher.setReport_save_path("D:\\apache-tomcat-7.0.94\\bin");
77
78
searcher. searchObject();
78
79
```
79
80
80
- ## 0x03 更多
81
+ ## 0x04 更多
81
82
* [ 半自动化挖掘request实现多种中间件回显] ( http://gv7.me/articles/2020/semi-automatic-mining-request-implements-multiple-middleware-echo/ )
0 commit comments