Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fuzzBackEnd
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
钱炳权
fuzzBackEnd
Commits
442473de
Commit
442473de
authored
Aug 16, 2024
by
钱炳权
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
测试插入、测试配置完成;但是更新数据存在问题
parent
26d2fc6e
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
499 additions
and
104 deletions
+499
-104
FuzzParamsController.java
...troll/controller/dataController/FuzzParamsController.java
+15
-15
TestMissionController.java
...roll/controller/dataController/TestMissionController.java
+93
-0
FuzzParams.java
...n/java/com/example/fuzzControll/domain/bo/FuzzParams.java
+5
-43
Test.java
...rc/main/java/com/example/fuzzControll/domain/po/Test.java
+27
-0
TestAndParams.java
...ava/com/example/fuzzControll/domain/po/TestAndParams.java
+27
-0
FuzzParamsMapper.java
...ava/com/example/fuzzControll/mapper/FuzzParamsMapper.java
+3
-1
TestMapper.java
...main/java/com/example/fuzzControll/mapper/TestMapper.java
+22
-0
FuzzParamsService.java
...a/com/example/fuzzControll/service/FuzzParamsService.java
+1
-1
TestMissionService.java
.../com/example/fuzzControll/service/TestMissionService.java
+22
-0
AgentOfKittyServiceImpl.java
...le/fuzzControll/service/impl/AgentOfKittyServiceImpl.java
+2
-2
FuzzParamsServiceImpl.java
...mple/fuzzControll/service/impl/FuzzParamsServiceImpl.java
+1
-1
GenerateMethodServiceImpl.java
.../fuzzControll/service/impl/GenerateMethodServiceImpl.java
+5
-5
MutationServiceImpl.java
...xample/fuzzControll/service/impl/MutationServiceImpl.java
+5
-5
ProtocolTemplateImpl.java
...ample/fuzzControll/service/impl/ProtocolTemplateImpl.java
+9
-5
TestMissionServiceImpl.java
...ple/fuzzControll/service/impl/TestMissionServiceImpl.java
+97
-0
TestServiceImpl.java
...om/example/fuzzControll/service/impl/TestServiceImpl.java
+1
-5
VulnerabilityTypeServiceImpl.java
...zzControll/service/impl/VulnerabilityTypeServiceImpl.java
+5
-5
TestCmdTools.java
...ava/com/example/fuzzControll/tools/test/TestCmdTools.java
+1
-2
application-dev.yml
fuzzIntegration/src/main/resources/application-dev.yml
+5
-5
FuzzParamsMapper.xml
...ntegration/src/main/resources/mapper/FuzzParamsMapper.xml
+23
-8
TestMapper.xml
fuzzIntegration/src/main/resources/mapper/TestMapper.xml
+45
-0
TestMissionController.java
...e/fuzzbackendmaster/controller/TestMissionController.java
+58
-0
FuzzIntegrationFileApi.java
...ple/fuzzbackendmaster/service/FuzzIntegrationFileApi.java
+27
-1
No files found.
fuzzIntegration/src/main/java/com/example/fuzzControll/controller/dataController/FuzzParamsController.java
View file @
442473de
...
...
@@ -49,20 +49,20 @@ public class FuzzParamsController {
return
AjaxResult
.
success
(
result
);
}
/**
* 跟据id修改参数
*/
@RequestMapping
(
value
=
"/editParam"
,
method
=
RequestMethod
.
POST
)
public
AjaxResult
editById
(
@RequestBody
FuzzParams
fuzzParams
)
{
boolean
flag
=
false
;
try
{
fuzzParams
.
setEditTime
(
new
Date
());
flag
=
fuzzParamsService
.
editFuzzParams
(
fuzzParams
);
}
catch
(
Exception
e
)
{
log
.
error
(
"Edit params with id error:{}"
,
e
.
getMessage
());
return
AjaxResult
.
error
();
}
return
AjaxResult
.
success
(
flag
);
}
//
/**
//
* 跟据id修改参数
//
*/
//
@RequestMapping(value = "/editParam", method = RequestMethod.POST)
//
public AjaxResult editById(@RequestBody FuzzParams fuzzParams) {
//
boolean flag = false;
//
try {
//
fuzzParams.setEditTime(new Date());
//
flag = fuzzParamsService.editFuzzParams(fuzzParams);
//
} catch (Exception e) {
//
log.error("Edit params with id error:{}", e.getMessage());
//
return AjaxResult.error();
//
}
//
return AjaxResult.success(flag);
//
}
}
fuzzIntegration/src/main/java/com/example/fuzzControll/controller/dataController/TestMissionController.java
0 → 100644
View file @
442473de
package
com
.
example
.
fuzzControll
.
controller
.
dataController
;
import
com.example.fuzzControll.domain.bo.CmdStartParams
;
import
com.example.fuzzControll.domain.bo.TestEntity
;
import
com.example.fuzzControll.domain.po.TestAndParams
;
import
com.example.fuzzControll.domain.vo.AjaxResult
;
import
com.example.fuzzControll.exception.testException.CmdException
;
import
com.example.fuzzControll.service.SeedFileService
;
import
com.example.fuzzControll.service.TestMissionService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* 测试信息控制栏
*/
@Slf4j
@RestController
@RequestMapping
(
"/testmission"
)
public
class
TestMissionController
{
@Autowired
TestMissionService
testMissionService
;
/**
* 测试信息获取
*/
@RequestMapping
(
value
=
"/getAll"
,
method
=
RequestMethod
.
GET
)
public
AjaxResult
getTestAndParamsList
()
{
List
<
TestAndParams
>
testAndParamsList
=
null
;
try
{
testAndParamsList
=
testMissionService
.
getTestAndParamsList
();
}
catch
(
Exception
e
)
{
return
AjaxResult
.
error
();
}
return
AjaxResult
.
success
(
testAndParamsList
);
}
/**
* 测试信息删除
*/
@RequestMapping
(
value
=
"/deleteById"
,
method
=
RequestMethod
.
GET
)
public
AjaxResult
deleteById
(
@RequestParam
int
id
)
{
boolean
flag
=
false
;
try
{
flag
=
testMissionService
.
deleteById
(
id
);
if
(!
flag
)
{
throw
new
RuntimeException
();
}
}
catch
(
Exception
e
)
{
return
AjaxResult
.
error
(
"删除失败!"
);
}
return
AjaxResult
.
success
(
"删除成功!"
);
}
/**
* 新建测试
*/
@RequestMapping
(
value
=
"/insert"
,
method
=
RequestMethod
.
GET
)
public
AjaxResult
insert
(
@RequestParam
String
testname
)
{
TestAndParams
testAndParams
=
new
TestAndParams
(
testname
);
try
{
testMissionService
.
insert
(
testAndParams
);
}
catch
(
Exception
e
)
{
return
AjaxResult
.
error
(
"新建失败!"
);
}
return
AjaxResult
.
success
(
"新建成功!"
);
}
/**
* 给空白测试配置参数
*/
@RequestMapping
(
value
=
"/insertWithAflnet/{id}"
,
method
=
RequestMethod
.
POST
)
public
AjaxResult
insertParmasInTestAflnet
(
@PathVariable
(
"id"
)
int
id
,
@RequestBody
final
CmdStartParams
cmdStartParams
)
{
try
{
testMissionService
.
insertParmasInTestAflnet
(
id
,
cmdStartParams
);
}
catch
(
Exception
e
)
{
return
AjaxResult
.
error
(
"参数配置失败!"
);
}
return
AjaxResult
.
success
(
"参数配置成功!"
);
}
@RequestMapping
(
value
=
"/insertWithkitty/{id}"
,
method
=
RequestMethod
.
POST
)
public
AjaxResult
insertParmasInTestKitty
(
@PathVariable
(
"id"
)
int
id
,
@RequestBody
TestEntity
testEntity
)
{
try
{
testMissionService
.
insertParmasInTestKitty
(
id
,
testEntity
);
}
catch
(
Exception
e
)
{
return
AjaxResult
.
error
(
"参数配置失败!"
);
}
return
AjaxResult
.
success
(
"参数配置成功!"
);
}
}
fuzzIntegration/src/main/java/com/example/fuzzControll/domain/bo/FuzzParams.java
View file @
442473de
...
...
@@ -15,59 +15,21 @@ import java.util.Date;
public
class
FuzzParams
{
private
int
id
;
private
String
params
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
editTime
;
private
int
missionId
;
private
String
protocol
;
public
FuzzParams
()
{
}
public
FuzzParams
(
int
id
,
String
params
,
Date
editTime
,
int
missionId
)
{
public
FuzzParams
(
int
id
,
String
params
,
String
protocol
)
{
this
.
id
=
id
;
this
.
params
=
params
;
this
.
editTime
=
editTime
;
this
.
missionId
=
missionId
;
}
public
FuzzParams
(
String
params
,
Date
editTime
,
int
missionId
)
{
this
.
params
=
params
;
this
.
editTime
=
editTime
;
this
.
missionId
=
missionId
;
}
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
String
getParams
()
{
return
params
;
this
.
protocol
=
protocol
;
}
public
void
setParams
(
String
params
)
{
public
FuzzParams
(
String
params
,
String
protocol
)
{
this
.
params
=
params
;
this
.
protocol
=
protocol
;
}
public
Date
getEditTime
()
{
return
editTime
;
}
public
void
setEditTime
(
Date
editTime
)
{
this
.
editTime
=
editTime
;
}
public
int
getMissionId
()
{
return
missionId
;
}
public
void
setMissionId
(
int
missionId
)
{
this
.
missionId
=
missionId
;
}
}
fuzzIntegration/src/main/java/com/example/fuzzControll/domain/po/Test.java
0 → 100644
View file @
442473de
package
com
.
example
.
fuzzControll
.
domain
.
po
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Data
@Setter
@Getter
@AllArgsConstructor
public
class
Test
{
private
int
id
;
private
int
fuzzParamsId
;
private
Date
createTime
;
private
Date
updateTime
;
private
String
missionIds
;
private
String
testName
;
public
Test
(
Date
createTime
,
Date
updateTime
,
String
testName
)
{
this
.
createTime
=
createTime
;
this
.
updateTime
=
updateTime
;
this
.
testName
=
testName
;
}
}
fuzzIntegration/src/main/java/com/example/fuzzControll/domain/po/TestAndParams.java
0 → 100644
View file @
442473de
package
com
.
example
.
fuzzControll
.
domain
.
po
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.sql.Date
;
@Data
@Setter
@Getter
@AllArgsConstructor
public
class
TestAndParams
{
private
int
id
;
private
int
fuzzParamsId
;
private
Date
createTime
;
private
Date
updateTime
;
private
String
missionIds
;
private
String
testName
;
private
String
params
;
private
String
protocol
;
public
TestAndParams
(
String
testName
)
{
this
.
testName
=
testName
;
}
}
fuzzIntegration/src/main/java/com/example/fuzzControll/mapper/FuzzParamsMapper.java
View file @
442473de
...
...
@@ -14,5 +14,7 @@ public interface FuzzParamsMapper {
List
<
FuzzParams
>
getFuzzParamsList
();
FuzzParams
getFuzzParamsById
(
int
id
);
boolean
editFuzzParams
(
FuzzParams
fuzzParams
);
int
editFuzzParams
(
FuzzParams
fuzzParams
);
void
insertFuzzParamsReturnId
(
FuzzParams
fuzzParams
);
}
fuzzIntegration/src/main/java/com/example/fuzzControll/mapper/TestMapper.java
0 → 100644
View file @
442473de
package
com
.
example
.
fuzzControll
.
mapper
;
import
com.example.fuzzControll.domain.po.Test
;
import
com.example.fuzzControll.domain.po.TestAndParams
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Mapper
@Component
(
"TestMapper"
)
public
interface
TestMapper
{
List
<
TestAndParams
>
getTestAndParamsList
();
boolean
deleteById
(
int
id
);
void
insert
(
Test
test
);
Test
getTestById
(
int
id
);
void
edit
(
Test
test
);
}
fuzzIntegration/src/main/java/com/example/fuzzControll/service/FuzzParamsService.java
View file @
442473de
...
...
@@ -12,5 +12,5 @@ public interface FuzzParamsService {
//todo 使用切面在运行时插入参数
boolean
saveFuzzParams
(
FuzzParams
fuzzParams
);
boolean
editFuzzParams
(
FuzzParams
fuzzParams
);
int
editFuzzParams
(
FuzzParams
fuzzParams
);
}
fuzzIntegration/src/main/java/com/example/fuzzControll/service/TestMissionService.java
0 → 100644
View file @
442473de
package
com
.
example
.
fuzzControll
.
service
;
import
com.example.fuzzControll.domain.bo.CmdStartParams
;
import
com.example.fuzzControll.domain.bo.FuzzParams
;
import
com.example.fuzzControll.domain.bo.TestEntity
;
import
com.example.fuzzControll.domain.po.Test
;
import
com.example.fuzzControll.domain.po.TestAndParams
;
import
java.util.List
;
public
interface
TestMissionService
{
List
<
TestAndParams
>
getTestAndParamsList
();
boolean
deleteById
(
int
id
);
void
insert
(
TestAndParams
testAndParams
);
void
insertParmasInTestAflnet
(
int
id
,
CmdStartParams
cmdStartParams
);
void
insertParmasInTestKitty
(
int
id
,
TestEntity
testEntity
);
}
fuzzIntegration/src/main/java/com/example/fuzzControll/service/impl/AgentOfKittyServiceImpl.java
View file @
442473de
...
...
@@ -19,7 +19,7 @@ public class AgentOfKittyServiceImpl implements AgentOfKittyService {
@Override
public
Boolean
startNetworkAgent
(
String
networkCard
,
String
monitorName
)
{
try
{
String
finalCmd
=
"python /usr/fuzzenv/fuzzenv/fuzz50/katnip/katnip/monitors/network.py "
+
networkCard
+
" "
+
monitorName
;
String
finalCmd
=
"python /usr/fuzzenv/fuzzenv/fuzz
_
50/katnip/katnip/monitors/network.py "
+
networkCard
+
" "
+
monitorName
;
TestCmdTools
cmdTools
=
new
TestCmdTools
();
List
<
String
>
result
=
cmdTools
.
runCmd
(
finalCmd
,
"startNetworkAgent"
);
List
<
String
>
filter
=
result
.
stream
().
filter
(
s
->
s
.
contains
(
"calling mon.teardown"
)).
collect
(
Collectors
.
toList
());
...
...
@@ -34,7 +34,7 @@ public class AgentOfKittyServiceImpl implements AgentOfKittyService {
@Override
public
Boolean
startSshAgent
(
String
monitorName
,
String
sshUserName
,
String
sshPassword
,
String
sshIp
,
String
sshPort
,
String
command
)
{
try
{
String
finalCmd
=
"python /usr/fuzzenv/fuzzenv/fuzz50/katnip/katnip/monitors/ssh.py "
+
monitorName
String
finalCmd
=
"python /usr/fuzzenv/fuzzenv/fuzz
_
50/katnip/katnip/monitors/ssh.py "
+
monitorName
+
" "
+
sshUserName
+
" "
+
sshPassword
+
" "
+
sshIp
+
" "
+
sshPort
+
" "
+
command
;
TestCmdTools
cmdTools
=
new
TestCmdTools
();
List
<
String
>
result
=
cmdTools
.
runCmd
(
finalCmd
,
"startSshAgent"
);
...
...
fuzzIntegration/src/main/java/com/example/fuzzControll/service/impl/FuzzParamsServiceImpl.java
View file @
442473de
...
...
@@ -47,7 +47,7 @@ public class FuzzParamsServiceImpl implements FuzzParamsService {
}
@Override
public
boolean
editFuzzParams
(
FuzzParams
fuzzParams
)
{
public
int
editFuzzParams
(
FuzzParams
fuzzParams
)
{
return
fuzzParamsMapper
.
editFuzzParams
(
fuzzParams
);
}
}
fuzzIntegration/src/main/java/com/example/fuzzControll/service/impl/GenerateMethodServiceImpl.java
View file @
442473de
...
...
@@ -34,11 +34,11 @@ public class GenerateMethodServiceImpl implements GenerateMethodService {
@NeedCutAround
(
name
=
"kitty"
,
function
=
"generation"
)
public
Map
<
String
,
List
<
String
>>
generation
(
TestEntity
testEntity
)
throws
FuzzException
,
CmdException
{
/*存入参数*/
int
missionId
=
GlobalClass
.
missionInfoMapper
.
selectTopMissionId
();
boolean
flag
=
fuzzParamsService
.
saveFuzzParams
(
new
FuzzParams
(
JSON
.
toJSONString
(
testEntity
.
getParamJson
()),
new
Date
(),
missionId
));
if
(!
flag
)
{
throw
new
AflnetException
(
"Save params error!"
);
}
//
int missionId = GlobalClass.missionInfoMapper.selectTopMissionId();
//
boolean flag = fuzzParamsService.saveFuzzParams(new FuzzParams(JSON.toJSONString(testEntity.getParamJson()), new Date(), missionId));
//
if (!flag) {
//
throw new AflnetException("Save params error!");
//
}
/*运行指令*/
String
cmd
=
parseParameters
(
testEntity
);
if
(
cmd
.
isEmpty
())
{
...
...
fuzzIntegration/src/main/java/com/example/fuzzControll/service/impl/MutationServiceImpl.java
View file @
442473de
...
...
@@ -37,11 +37,11 @@ class MutationServiceImpl implements MutationService {
@NeedCutAround
(
name
=
"kitty"
,
function
=
"generation"
)
public
Map
<
String
,
List
<
String
>>
generation
(
TestEntity
testEntity
)
throws
FuzzException
,
CmdException
{
/*存入参数*/
int
missionId
=
GlobalClass
.
missionInfoMapper
.
selectTopMissionId
();
boolean
flag
=
fuzzParamsService
.
saveFuzzParams
(
new
FuzzParams
(
JSON
.
toJSONString
(
testEntity
.
getParamJson
()),
new
Date
(),
missionId
));
if
(!
flag
)
{
throw
new
AflnetException
(
"Save params error!"
);
}
//
int missionId = GlobalClass.missionInfoMapper.selectTopMissionId();
//
boolean flag = fuzzParamsService.saveFuzzParams(new FuzzParams(JSON.toJSONString(testEntity.getParamJson()), new Date(), missionId));
//
if (!flag) {
//
throw new AflnetException("Save params error!");
//
}
String
cmd
=
parseParameters
(
testEntity
);
if
(
cmd
.
isEmpty
())
{
throw
new
FuzzException
(
"cmd is null ! The number of parameters does not match!"
);
...
...
fuzzIntegration/src/main/java/com/example/fuzzControll/service/impl/ProtocolTemplateImpl.java
View file @
442473de
...
...
@@ -8,12 +8,14 @@ import com.example.fuzzControll.conf.KittyProperties;
import
com.example.fuzzControll.constents.CmdConstent
;
import
com.example.fuzzControll.constents.ProtocolConstent
;
import
com.example.fuzzControll.domain.bo.FuzzParams
;
import
com.example.fuzzControll.domain.po.TestAndParams
;
import
com.example.fuzzControll.exception.testException.AflnetException
;
import
com.example.fuzzControll.exception.testException.CmdException
;
import
com.example.fuzzControll.exception.testException.FuzzException
;
import
com.example.fuzzControll.domain.bo.TestEntity
;
import
com.example.fuzzControll.service.FuzzParamsService
;
import
com.example.fuzzControll.service.ProtocolTemplateService
;
import
com.example.fuzzControll.service.TestMissionService
;
import
com.example.fuzzControll.tools.system.GlobalClass
;
import
com.example.fuzzControll.tools.test.SingleCmdTools
;
import
com.example.fuzzControll.tools.test.TestCmdTools
;
...
...
@@ -35,16 +37,18 @@ public class ProtocolTemplateImpl implements ProtocolTemplateService {
KittyProperties
kitty
;
@Autowired
FuzzParamsService
fuzzParamsService
;
@Autowired
TestMissionService
testMissionService
;
@Override
@NeedCutAround
(
name
=
"kitty"
,
function
=
"generation"
)
@NeedCutAround
(
name
=
"kitty"
,
function
=
"generation"
)
public
Map
<
String
,
List
<
String
>>
generation
(
TestEntity
testEntity
)
throws
FuzzException
,
CmdException
{
/*存入参数*/
int
missionId
=
GlobalClass
.
missionInfoMapper
.
selectTopMissionId
();
boolean
flag
=
fuzzParamsService
.
saveFuzzParams
(
new
FuzzParams
(
JSON
.
toJSONString
(
testEntity
.
getParamJson
()),
new
Date
(),
missionId
));
if
(!
flag
)
{
throw
new
AflnetException
(
"Save params error!"
);
}
//
boolean flag = fuzzParamsService.saveFuzzParams(new FuzzParams(JSON.toJSONString(testEntity.getParamJson()), new Date(), missionId));
//
if (!flag) {
//
throw new AflnetException("Save params error!");
//
}
/*生成日志前先清除日志*/
singleCmdTools
.
runCmd
(
CmdConstent
.
DELETE_FILE
+
GlobalClass
.
kittyProperties
.
getLogOutPath
(),
"delete kittyLogs"
);
String
cmd
=
parseParameters
(
testEntity
);
...
...
fuzzIntegration/src/main/java/com/example/fuzzControll/service/impl/TestMissionServiceImpl.java
0 → 100644
View file @
442473de
package
com
.
example
.
fuzzControll
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.example.fuzzControll.domain.bo.CmdStartParams
;
import
com.example.fuzzControll.domain.bo.FuzzParams
;
import
com.example.fuzzControll.domain.bo.TestEntity
;
import
com.example.fuzzControll.domain.po.Test
;
import
com.example.fuzzControll.domain.po.TestAndParams
;
import
com.example.fuzzControll.exception.mysqlException.MysqlException
;
import
com.example.fuzzControll.mapper.FuzzParamsMapper
;
import
com.example.fuzzControll.mapper.TestMapper
;
import
com.example.fuzzControll.service.TestMissionService
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
@Slf4j
@Service
(
"TestMissionServiceImpl"
)
public
class
TestMissionServiceImpl
implements
TestMissionService
{
@Autowired
TestMapper
testMapper
;
@Autowired
FuzzParamsMapper
fuzzParamsMapper
;
@Override
public
List
<
TestAndParams
>
getTestAndParamsList
()
{
List
<
TestAndParams
>
testParamsList
=
new
ArrayList
();
try
{
testParamsList
=
testMapper
.
getTestAndParamsList
();
}
catch
(
Exception
e
)
{
log
.
error
(
"Failed to get test and params list:{}"
,
e
.
getMessage
());
throw
new
RuntimeException
(
e
);
}
if
(
testParamsList
==
null
||
testParamsList
.
size
()
==
0
)
{
log
.
warn
(
"TestAndParams is null!"
);
}
return
testParamsList
;
}
@Override
public
boolean
deleteById
(
int
id
)
{
boolean
flag
=
false
;
try
{
flag
=
testMapper
.
deleteById
(
id
);
}
catch
(
Exception
e
)
{
log
.
error
(
"Delete error:{}"
,
e
.
getMessage
());
throw
new
RuntimeException
(
e
);
}
return
false
;
}
@Override
public
void
insert
(
TestAndParams
testAndParams
)
{
Test
test
=
new
Test
(
new
Date
(),
new
Date
(),
testAndParams
.
getTestName
());
testMapper
.
insert
(
test
);
}
@Transactional
(
rollbackFor
=
MysqlException
.
class
)
@Override
public
void
insertParmasInTestAflnet
(
int
id
,
CmdStartParams
cmdStartParams
)
{
try
{
/*判断test是否存有paramsId,没数据插入有数据就改变*/
Test
test
=
testMapper
.
getTestById
(
id
);
int
fuzzParamsId
;
if
(
test
.
getFuzzParamsId
()
==
0
)
{
//为0则插入id
FuzzParams
fuzzParams
=
new
FuzzParams
(
JSON
.
toJSONString
(
cmdStartParams
),
cmdStartParams
.
getProtopcol
());
fuzzParamsMapper
.
insertFuzzParamsReturnId
(
fuzzParams
);
fuzzParamsId
=
fuzzParams
.
getId
();
test
.
setFuzzParamsId
(
fuzzParamsId
);
}
else
{
//有则更新数据
FuzzParams
fuzzParams
=
new
FuzzParams
(
test
.
getId
(),
JSON
.
toJSONString
(
cmdStartParams
),
cmdStartParams
.
getProtopcol
());
fuzzParamsMapper
.
editFuzzParams
(
fuzzParams
);
}
/*更新修改时间*/
test
.
setUpdateTime
(
new
Date
());
testMapper
.
edit
(
test
);
}
catch
(
Exception
e
)
{
log
.
error
(
"Failed to insert:[{}]"
,
e
.
getMessage
());
throw
new
MysqlException
(
""
);
}
}
@Transactional
(
rollbackFor
=
MysqlException
.
class
)
@Override
public
void
insertParmasInTestKitty
(
int
id
,
TestEntity
testEntity
)
{
/*插入fuzzparams返回id*/
/*更新对应id的测试数据*/
}
}
fuzzIntegration/src/main/java/com/example/fuzzControll/service/impl/TestServiceImpl.java
View file @
442473de
...
...
@@ -49,17 +49,15 @@ public class TestServiceImpl implements TestService {
@Override
public
void
testStart
(
CmdStartParams
cmdStartParams
)
throws
AflnetException
,
CmdException
{
/*存入参数*/
System
.
out
.
println
(
"1111111111111111111111111111111111111111111111111111111111111111"
);
int
missionId
=
GlobalClass
.
missionInfoMapper
.
selectTopMissionId
()
+
1
;
boolean
flag
=
false
;
try
{
flag
=
fuzzParamsService
.
saveFuzzParams
(
new
FuzzParams
(
JSON
.
toJSONString
(
cmdStartParams
),
new
Date
(),
missionId
));
//
flag = fuzzParamsService.saveFuzzParams(new FuzzParams(JSON.toJSONString(cmdStartParams), new Date(), missionId));
System
.
out
.
println
(
"flag = "
+
flag
);
}
catch
(
Exception
e
)
{
log
.
error
(
"Save fuzz error:{}"
,
e
.
getMessage
());
throw
new
RuntimeException
(
e
);
}
System
.
out
.
println
(
"2222222222222222222222222222222222222222222222222222222222222222"
);
if
(!
flag
)
{
log
.
error
(
"Save fuzzParams failed!"
);
throw
new
AflnetException
(
"Save params error!"
);
...
...
@@ -67,14 +65,12 @@ public class TestServiceImpl implements TestService {
/*拼接指令*/
TestControlTools
.
setIsRunning
(
true
);
String
cmd
=
cmdTools
.
parse
(
cmdStartParams
);
System
.
out
.
println
(
"33333333333333333333333333333333333333333333333333333333333333333"
);
Date
date
=
new
Date
();
DateFormat
df
=
new
SimpleDateFormat
(
"yyyy-MM-dd-hh-mm-ss-"
);
String
outputFileName
=
df
.
format
(
date
)
+
cmdStartParams
.
getProtopcol
()
+
"-output"
;
String
finalCmd
=
CmdConstent
.
RUN_AFLNET_BEFORE
+
outputFileName
+
CmdConstent
.
RUN_AFLNET_AFTER
+
cmd
+
aflnetProperties
.
getAflnetPath
()
+
"live555/testProgs/"
+
"testOnDemandRTSPServer 8554"
;
SystemRunningParams
.
aflnetData
.
put
(
"aflnetName"
,
outputFileName
);
log
.
info
(
"The cmd is [{}]"
,
finalCmd
);
System
.
out
.
println
(
"444444444444444444444444444444444444444444444444444444444444444444"
);
/*执行指令*/
System
.
out
.
println
(
"testStart"
);
cmdTools
.
runProgramCmd
(
finalCmd
,
outputFileName
+
".zip"
);
...
...
fuzzIntegration/src/main/java/com/example/fuzzControll/service/impl/VulnerabilityTypeServiceImpl.java
View file @
442473de
...
...
@@ -33,11 +33,11 @@ public class VulnerabilityTypeServiceImpl implements VulnerabilityTypeService {
@NeedCutAround
(
name
=
"kitty"
,
function
=
"generation"
)
public
Map
<
String
,
List
<
String
>>
generation
(
TestEntity
testEntity
)
throws
FuzzException
,
CmdException
{
/*存入参数*/
int
missionId
=
GlobalClass
.
missionInfoMapper
.
selectTopMissionId
();
boolean
flag
=
fuzzParamsService
.
saveFuzzParams
(
new
FuzzParams
(
JSON
.
toJSONString
(
testEntity
.
getParamJson
()),
new
Date
(),
missionId
));
if
(!
flag
)
{
throw
new
AflnetException
(
"Save params error!"
);
}
//
int missionId = GlobalClass.missionInfoMapper.selectTopMissionId();
//
boolean flag = fuzzParamsService.saveFuzzParams(new FuzzParams(JSON.toJSONString(testEntity.getParamJson()), new Date(), missionId));
//
if (!flag) {
//
throw new AflnetException("Save params error!");
//
}
String
cmd
=
parseParameters
(
testEntity
);
if
(
cmd
.
isEmpty
())
{
throw
new
FuzzException
(
"cmd is null ! The number of parameters does not match!"
);
...
...
fuzzIntegration/src/main/java/com/example/fuzzControll/tools/test/TestCmdTools.java
View file @
442473de
...
...
@@ -378,7 +378,7 @@ public class TestCmdTools {
}
public
String
parse
(
CmdStartParams
cmdStartParams
)
throws
AflnetException
{
System
.
out
.
println
(
"************************1111111111111111111111"
);
log
.
info
(
"Cmd is [{}]"
,
cmdStartParams
);
System
.
out
.
println
(
"cmd is :"
+
cmdStartParams
);
if
(
cmdStartParams
==
null
)
{
throw
new
AflnetException
(
"CmdStartParams is null !"
);
...
...
@@ -420,7 +420,6 @@ public class TestCmdTools {
if
(
cmdStartParams
.
getSeedSelectionAlgo
()
!=
0
)
{
cmd
.
append
(
" -s "
+
cmdStartParams
.
getSeedSelectionAlgo
()
+
" "
);
}
System
.
out
.
println
(
"************************22222222222222222222222"
);
return
cmd
.
toString
();
}
...
...
fuzzIntegration/src/main/resources/application-dev.yml
View file @
442473de
...
...
@@ -26,11 +26,11 @@ aflnet:
kitty
:
logOutPath
:
"
/home/kittylogs/"
#kitty协议模板日志生成路径
path
:
"
/usr/fuzzenv/fuzzenv/fuzz50/kitty/renix/"
#kitty项目下的各协议生成模板python文件路径
venvPath
:
"
/usr/fuzzenv/fuzzenv/fuzz
50/kitty
/venv/bin/python"
methodPath
:
"
/usr/fuzzenv/fuzzenv/fuzz50/kitty/2020test/"
#kitty下变异方法路径
vulnerabilityTypePath
:
"
/usr/fuzzenv/fuzzenv/fuzz50/kitty/2020test/"
#kitty下漏洞类型python路径
mutationPath
:
"
/usr/fuzzenv/fuzzenv/fuzz50/kitty/2020test/"
path
:
"
/usr/fuzzenv/fuzzenv/fuzz
_
50/kitty/renix/"
#kitty项目下的各协议生成模板python文件路径
venvPath
:
"
/usr/fuzzenv/fuzzenv/fuzz
_50
/venv/bin/python"
methodPath
:
"
/usr/fuzzenv/fuzzenv/fuzz
_
50/kitty/2020test/"
#kitty下变异方法路径
vulnerabilityTypePath
:
"
/usr/fuzzenv/fuzzenv/fuzz
_
50/kitty/2020test/"
#kitty下漏洞类型python路径
mutationPath
:
"
/usr/fuzzenv/fuzzenv/fuzz
_
50/kitty/2020test/"
templateInfoHttp
:
"
http://127.0.0.1:26001/api/template_info.json"
#模板信息请求链接
statsHttp
:
"
http://127.0.0.1:26001/api/stats.json"
#运行时数据
stagesHttp
:
"
http://127.0.0.1:26001/api/stages.json"
#
...
...
fuzzIntegration/src/main/resources/mapper/FuzzParamsMapper.xml
View file @
442473de
...
...
@@ -7,22 +7,37 @@
<resultMap
type=
"com.example.fuzzControll.domain.bo.FuzzParams"
id=
"fuzzParams"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"params"
column=
"params"
/>
<result
property=
"editTime"
column=
"editTime"
/>
<result
property=
"missionId"
column=
"missionId"
/>
<result
property=
"protocol"
column=
"protocol"
/>
</resultMap>
<sql
id=
"selectFuzzParams"
>
select id, params,
editTime,missionId
from fuzz_params
select id, params,
protocol
from fuzz_params
</sql>
<insert
id=
"saveFuzzParams"
>
insert into fuzz_params(id, params,
editTime,missionId) values(#{id}, #{params},#{editTime},#{missionId
})
<insert
id=
"saveFuzzParams"
>
insert into fuzz_params(id, params,
protocol) values(#{id}, #{params},#{protocol
})
</insert>
<update
id=
"editFuzzParams"
>
update fuzz_params set params = #{params} ,editTime = #{editTime} where missionId = #{missionId}
<insert
id=
"insertFuzzParamsReturnId"
>
<selectKey
keyProperty=
"id"
order=
"AFTER"
resultType=
"java.lang.Integer"
>
SELECT LAST_INSERT_ID()
</selectKey>
insert INTO fuzz_params (params, protocol)
values (#{params}, #{protocol})
</insert>
<update
id=
"editFuzzParams"
parameterType=
"com.example.fuzzControll.domain.bo.FuzzParams"
>
update fuzz_params
set id = #{id} , params = #{params} ,protocol = #{protocol}
where id = #{id}
<!-- update fuzz_params-->
<!-- <trim prefix="SET" suffixOverrides=",">-->
<!-- <if test="id != null">id = #{id},</if>-->
<!-- <if test="params != null">params = #{params},</if>-->
<!-- <if test="protocol != null">protocol = #{protocol},</if>-->
<!-- </trim>-->
<!-- where id = #{id}-->
</update>
<select
id=
"getFuzzParamsById"
resultMap=
"fuzzParams"
>
<include
refid=
"selectFuzzParams"
/>
where
missionId = #{missionI
d}
where
id = #{i
d}
</select>
<select
id=
"getFuzzParamsList"
resultMap=
"fuzzParams"
>
<include
refid=
"selectFuzzParams"
/>
...
...
fuzzIntegration/src/main/resources/mapper/TestMapper.xml
0 → 100644
View file @
442473de
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.example.fuzzControll.mapper.TestMapper"
>
<resultMap
type=
"com.example.fuzzControll.domain.po.Test"
id=
"test"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"fuzzParamsId"
column=
"fuzzParamsId"
/>
<result
property=
"createTime"
column=
"createTime"
/>
<result
property=
"updateTime"
column=
"updateTime"
/>
<result
property=
"missionIds"
column=
"missionIds"
/>
<result
property=
"testName"
column=
"testName"
/>
</resultMap>
<sql
id=
"selectAll"
>
select id, fuzzParamsId,createTime,updateTime,missionIds,testName from test
</sql>
<insert
id=
"insert"
>
insert into test (fuzzParamsId, createTime, updateTime,missionIds,testName)
values (#{fuzzParamsId},#{createTime},#{updateTime},#{missionIds},#{testName})
</insert>
<update
id=
"edit"
>
update test
set fuzzParamsId = #{fuzzParamsId}, updateTime = #{updateTime}
where id = #{id}
</update>
<delete
id=
"deleteById"
>
DELETE
t1, t2
FROM test t1
INNER JOIN fuzz_params t2 ON t1.fuzzParamsId = t2.id
WHERE t1.id = #{id};
</delete>
<select
id=
"getTestAndParamsList"
resultType=
"com.example.fuzzControll.domain.po.TestAndParams"
>
select test.id, fuzzParamsId,createTime,updateTime,missionIds,testName,params,protocol from test,fuzz_params
where test.fuzzParamsId = fuzz_params.id
</select>
<select
id=
"getTestById"
resultType=
"com.example.fuzzControll.domain.po.Test"
>
<include
refid=
"selectAll"
/>
where id = #{id}
</select>
</mapper>
\ No newline at end of file
fuzzbackendmaster/src/main/java/com/example/fuzzbackendmaster/controller/TestMissionController.java
0 → 100644
View file @
442473de
package
com
.
example
.
fuzzbackendmaster
.
controller
;
import
com.example.fuzzbackendmaster.pojo.vo.AjaxResult
;
import
com.example.fuzzbackendmaster.pojo.vo.CmdStartParams
;
import
com.example.fuzzbackendmaster.pojo.vo.TestEntity
;
import
com.example.fuzzbackendmaster.service.FuzzIntegrationFileApi
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
@Slf4j
@RestController
@RequestMapping
(
"/testmission"
)
@CrossOrigin
public
class
TestMissionController
{
@Autowired
FuzzIntegrationFileApi
fuzzIntegrationFileApi
;
/**
* 获取全部测试信息
*/
@RequestMapping
(
value
=
"/getAll"
,
method
=
RequestMethod
.
GET
)
public
AjaxResult
getAll
()
{
return
fuzzIntegrationFileApi
.
getTestAndParamsList
();
}
/**
* 跟据id删除测试信息
*/
@RequestMapping
(
value
=
"/deleteById"
,
method
=
RequestMethod
.
GET
)
public
AjaxResult
deleteById
(
@RequestParam
int
id
)
{
return
fuzzIntegrationFileApi
.
deleteById
(
id
);
}
/**
* 新建测试,由测试名新建空白测试
*/
@RequestMapping
(
value
=
"/insert"
,
method
=
RequestMethod
.
GET
)
public
AjaxResult
insertTest
(
@RequestParam
String
testname
)
{
return
fuzzIntegrationFileApi
.
insert
(
testname
);
}
/**
* 给aflent相关测试配置参数
*/
@RequestMapping
(
value
=
"/insertWithAflnet/{id}"
,
method
=
RequestMethod
.
POST
)
public
AjaxResult
insertParmasInTestAflnet
(
@PathVariable
(
"id"
)
int
id
,
@RequestBody
final
CmdStartParams
cmdStartParams
)
{
return
fuzzIntegrationFileApi
.
insertParmasInTestAflnet
(
id
,
cmdStartParams
);
}
/**
* 给kitty相关测试配置参数
*/
@RequestMapping
(
value
=
"/insertWithkitty/{id}"
,
method
=
RequestMethod
.
POST
)
public
AjaxResult
insertParmasInTestKitty
(
@PathVariable
(
"id"
)
int
id
,
@RequestBody
TestEntity
testEntity
)
{
return
fuzzIntegrationFileApi
.
insertParmasInTestKitty
(
id
,
testEntity
);
}
}
fuzzbackendmaster/src/main/java/com/example/fuzzbackendmaster/service/FuzzIntegrationFileApi.java
View file @
442473de
...
...
@@ -137,13 +137,14 @@ public interface FuzzIntegrationFileApi {
* 异常重放分析
*/
@RequestMapping
(
value
=
"/aflnet/analyse"
,
method
=
RequestMethod
.
GET
)
AjaxResult
analyse
(
@RequestParam
String
codePath
,
@RequestParam
String
programName
);
AjaxResult
analyse
(
@RequestParam
String
codePath
,
@RequestParam
String
programName
);
/**
* 获取异常分析结果
*/
@RequestMapping
(
value
=
"/aflnet/getreplayresult"
,
method
=
RequestMethod
.
GET
)
AjaxResult
getReplayResult
();
/**
* 异常重放
*/
...
...
@@ -151,4 +152,29 @@ public interface FuzzIntegrationFileApi {
AjaxResult
replay
(
@RequestParam
String
targetServer
,
@RequestParam
String
targetServerCodePath
,
@RequestParam
String
targetServerPort
,
@RequestParam
String
protocol
,
@RequestParam
String
pathToCrash
);
/**
* 查询测试信息(测试是任务的概念)
*/
@RequestMapping
(
value
=
"/testmission/getAll"
,
method
=
RequestMethod
.
GET
)
AjaxResult
getTestAndParamsList
();
/**
* 跟据id删除测试
*/
@RequestMapping
(
value
=
"/testmission/deleteById"
,
method
=
RequestMethod
.
GET
)
AjaxResult
deleteById
(
int
id
);
/**
* 插入空白测试信息
*/
@RequestMapping
(
value
=
"/testmission/insert"
,
method
=
RequestMethod
.
GET
)
AjaxResult
insert
(
@RequestParam
String
testname
);
/**
* 给配置信息配置参数
*/
@RequestMapping
(
value
=
"/testmission/insertWithAflnet/{id}"
,
method
=
RequestMethod
.
POST
)
AjaxResult
insertParmasInTestAflnet
(
@PathVariable
(
"id"
)
int
id
,
@RequestBody
final
CmdStartParams
cmdStartParams
);
@RequestMapping
(
value
=
"/testmission/insertWithkitty/{id}"
,
method
=
RequestMethod
.
POST
)
AjaxResult
insertParmasInTestKitty
(
@PathVariable
(
"id"
)
int
id
,
@RequestBody
TestEntity
testEntity
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment