내 출력은 다음과 같습니다
________________________________________________
:: Method : GET
:: URL : HOST/FUZZ
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 500
:: Matcher : Response status: 200
________________________________________________
[Status: 200, Size: 52, Words: 2, Lines: 6]
* FUZZ: index.jsp
* HOST: https://test.com
이 출력에서 내가 얻고 싶은 것은 두 가지를 하나로 묶는 것입니다.
예상 출력
https://test.com/index.jsp
내가 시도한 것은
awk '/HOST:/{ print $4} /FUZZ:/{ print $4}' ffuf'
산출
index.jsp
https://test.com
16진수 덤프 출력
grep 'FUZZ:' ffuf | hexdump -C
산출
00000000 0d 0d 20 20 20 20 2a 20 46 55 5a 5a 3a 20 69 6e |.. * FUZZ: in|
00000010 64 65 78 2e 6a 73 70 0a |dex.jsp.|
00000018
그들에게 연락하는 방법을 아시나요?
감사해요
답변1
hexdump
찾고 있는 데이터가 포함된 줄의 시작 부분에 두 개의 캐리지 리턴이 있다는 것이 표시된 출력 에서 분명합니다. 구문 분석 데이터를 사용하는 경우 이는 해당 행의 첫 번째 필드를 형성합니다 awk
. 아래의 두 가지 변형( sed
및 )은 awk
이러한 문제를 무시( )하거나 회피( )하여 이 문제를 해결합니다.sed
awk
를 사용 sed
하고 with 행이 FUZZ:
항상 with 행 앞에 나타난다 고 가정합니다 HOST:
.
$ sed -n '/.*FUZZ: /{ s///; h; }; /.*HOST: /{ s///; G; s,\n,/,p; }' file
https://test.com/index.jsp
이 sed
명령(각 줄을 끄는 기본 출력으로 실행 -n
)은 해당 FUZZ:
줄을 일치시키고 파일 이름까지 해당 줄의 모든 항목을 삭제합니다. 그런 다음 파일 이름을 예약된 공간에 복사합니다 h
.
줄이 일치 하면 HOST:
줄의 시작 부분도 제거되고 공간을 예약하는 내용이 URL( HOST:
줄의 나머지 부분)에 추가됩니다. 명령에 의해 삽입된 개행 문자는 G
슬래시로 변경되고 결과 문자열이 인쇄됩니다.
를 사용하면 awk
위와 동일한 가정이 이루어집니다.
$ awk -v OFS='/' '/FUZZ:/ { fuzz = $NF } /HOST:/ { print $NF, fuzz }' file
https://test.com/index.jsp
여기서 변수는 fuzz
위 변형에서 사용한 공간 sed
, 즉 파일 이름을 유지하는 역할을 합니다. $NF
행의 마지막 필드의 데이터입니다.
답변2
나는 이것을함으로써 이것을 달성했습니다
awk '/FUZZ:/{ FUZZ=$4; next } /HOST:/{ print $4 "/" FUZZ }'
산출
https://test.com/index.jsp