>source

나는 명령 주사로 작은 운동을하고있다. 그리고 나는이 진술을 가지고 주사를 할 수 있다는 것을 가지고있다.

grep -i $key dictionary.txt

$ 키내가 무언가를 주입 할 수있는 부분이다. 자, 여기서 의도 된 해결책을 알고 있습니다....에하나의 명령문을 종료하고 새 하나를 구성합니다. 그러나 나는 내가 그것을 사용할 수 있는지 알고 싶었다.grep.내 시도에서.

그래서 내가하고 싶은 것은 실행하는 것입니다.LS.특정 디렉토리의 파일을 보려면. 내가하고 싶은 일은 다음과 같이 두 가지를 사용하는 것입니다.

ls | grep -i "."

그러나, 주사를하고 있기 때문에 나는grep -i.처음에. 내가 할 수있는 일이 있니? 아마도 "역방향"주문에서 작동하는 파이프 연산자는 무엇입니까?

grep -i "." <| ls

편집

여기서 내가 여기서하는 일에 대해 조금 혼란스러워하는 것, 그리고 내가 달성하려는 것은 무엇입니까?

나는 펜 테스트에서 소개 운동을하고 있습니다.

내 현재의 연습은 웹 사이트에서 주입을 수행하는 것입니다.이 문자열은 다음과 같습니다.

grep -i $key dictionary.txt

을 누른 다음 해당 문자열을 사용하여 명령을 실행합니다. 이 문자열에 뭔가를 주입해야하며 명령 주입이됩니다. 나는 서버에 이미 쓰여짐에 따라 문자열을 제어 할 수 없으므로 나는 아무것도 왼쪽에 아무것도 넣을 수 없습니다.grep -i

나는 이미 다음을 주입하는 솔루션을 가지고 있습니다.

; ls /etc/natas_webpass #

(IT 주사시) 서버에서 실행되는이 명령을 작성합니다.

grep -i ; ls /etc/natas_webpass # dictionary.txt

구매는 세미콜론을 사용하지 않고이 운동을 해결하려고 노력하고 싶지만 실제로 사용하는 것grep.나는 이미 거기에있다

편집 2

나는 단순히 찾고 있다고 제안 해왔다.< (ls)...에 나는 이것을 실행하여 이것을 시험해 보았습니다.

$ grep -i <(ls)

이것은 작동하지 않습니다.

나는 내가 던지는 것을 주사하기를 원하는 당신 사이의 관계를 따르지 않고 명령의 순서와 명령의 순서를 따르지 않습니다. 어쨌든 변수 "$ 키"가 올바르게 인용되면 모든 주입 시도를 피할 수 있습니다. 적절한 code를 작성하고 공격 표면을 줄입니다

roaima2021-09-09 05:36:07

두 번째 예제에 대한 올바른 구문은 <(ls)

jordanm2021-09-09 05:36:07

이것은 주사를 가지고 노는 것, Bash 명령을 작성하는 데 더 잘 연주하기 위해서는 운동 일뿐입니다. 그러므로 code는 의도적으로 심하게 작성되었습니다. code가 그런 식으로 주문 된 이래로 % 키 스폿의 장소에서만 주입을 할 수 있습니다. 이는 최종 명령이 GREP -I로 시작 해야하는 이유입니다.

NotQuiteSo13372021-09-09 05:36:07

아마도 그 grep -i "라고 생각하니? 리터럴이있는 파일 이름 만 표시합니다. 그들 안에? 그것은 작동하지 않을 것입니다. 정규 표현식에서. 어떤 문자와 일치하는 것을 의미합니다. 그 의미가 없으므로 백 슬래시로 그것을 "탈출"해야합니다. 예를 들어, LS | grep '\.'. BTW,이 길을 너무 멀리 가기 전에 왜 분석하지 않는 이유를 알아보십시오 (그리고 대신 무엇을 해야할지).

cas2021-09-09 05:36:07

@CAS 예이 아이디어는 "." 현재보고있는 LS의 출력의 모든 문자와 일치하며, 따라서 모든 것을 인쇄하여 볼 수 있습니다.

NotQuiteSo13372021-09-09 05:36:07
  • 이전 debian : Kali Linux 업그레이드 오류
  • 다음 process : "lsof"명령의 대안은 무엇입니까?