모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
정말 2일동안 oracle 연동만 한거같습니다.. 저는 처음에 xampp 최신판을 설치했는데요 instant-client와 xampp의 vc버전이 호환되지 않아 실행안됨 xampp는 apmsetup과 달리 64bit버전으로 php나 mysql이 설치될 수 있음 이 두개를 설치하면서 배웠습니다.. 이 두개 조건만 기억하시면 oci8까지는 문제없이 되실겁니다 oci8 설정 https://stz.co.kr/phpxampp-oracle/ 두말할 필요없이 이 링크만 보고 그대로만 진행하시면 oci8까지는 확실하게 실행됩니다. 주의사항 : 64비트로 설치하세요. instant client인 경우 강의대로 basic패키지로 설치하세요 xampp 최신버전 설치합니다 instant client_19.22로 설치합니다 => 이거가 정말 중요합니다. 최신버전 21은 xampp의 php.ini에서 dll을 수정할 수 있는 부분이 아예없더군요 링크에 나온 그대로 따라합니다 tns에러..(ora 12518, 12514등등) 이건 리스너를 고치는게 맞습니다. 스택오버플로우 페이지도 찾아보고 다 했는데 이 게시글이 답입니다. 서비스 이름이 소문자인지 대문자인지 체크해라 저는 sid 이름을 소문자로 바꾸고 이제 SID_LIST_LISTENER= 되어있는 곳에 제가 추가한 TNSNAME 을 적어주었습니다.-> 이 과정에서 정말 중요한게 있습니다. 추가를 할때 oracle home의 주소를 dbhomeXE가 아니라 tnsname이 있는 경로로 바꾸어주어야합니다. 저는 21c\homes\OraDB21Home1\network\admin에 있었습니다. 제가볼때 경로랑 이름이 문제였던거 같습니다 https://xively.tistory.com/entry/oracle-sql-error-ORA-12514-TNSlistener-does-not-currently-know-of-service-requested-in-connect-descriptor-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-oracle-sqlDeveloper-%EA%B0%91%EC%9E%90%EA%B8%B0-%EC%A0%91%EC%86%8D-%EC%95%88%EB%90%A8-%ED%95%B4%EA%B2%B0-Oracle-11g-ora-12541-no-listener#google_vignette 이렇게 해주시면 php를 8.0이상의 최신버전으로 oracle 연동을 사용할 수 있습니다.
강의에 나온 비트나미 설정은 모두 완료한 상태입니다. 이상하게 위 사진과 같이 oauth.friends와 friends 페이지는 상단의 네브바가 정상적으로 출력이 되지만 wgw 페이지의 경우 상단바가 깨지는 현상이 발생합니다. 코드를 분석해보니 둘다 동일하게 menu.php라는 파일을 불러오는 역할을 하고 설정을 3개로 나눠서 하는거면 몰라도 php.ini파일에서 공통적으로 설정된 값을 통해서 불러와지는건데 무엇이 문제일까요? 근데 이 문제는 네브바에 버튼을 통해 변경되는 페이지를 직접 url에서 입력만 해주면 되기 때문에 큰 문제는 되지 않습니다. wgw 로그인 페이지에서 Friends로 로그인 하기 버튼을 누르게 되면 강의에서는 정해진 url로 리디렉션이 진행됩니다. 하지만 저는 Friends로 로그인 하기를 누를 시에 wgw 인덱스 페이지로 리디렉션이 되어서 마찬가지로 코드를 확인해보니 이렇게 되어있더군요. friends_auth_url 에 대한 변수를 가지고 리디렉션이 되는 구조여서 해당 변수의 값을 직접 url에 입력해봐도 인덱스 페이지로 리디렉션이 될 뿐인데.. 이렇게 구현이 되어있더라고여 authorize.php 파일에 뭔가 문제가 있는건지, 저같은 문제가 없었는지 의아하네요..
권한 옵션 관련한 설명에서요 .. 그림에는 100 110 001 000 으로 -rwS--x--- 로 되어있는데 숫자로 나타내면 4610 으로 나타낸다고 나와있는걸로 봤는데, 그 밑에 설명에는 "예를 들어, 위와 같이 현재 권한이 4611로 설정되어 있는 ~" 이라고 나오더라구요. 이 부분이 이해가 안가서요.. 4610 이 아니라 왜 4611인가요?
모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
복습하던 도중에 practice_upload3 문제에서 질문이 있습니다. 우선 문제는 파일 다운로드 취약점을 이용해서 풀긴 했는데 uploadaction.php에서는 업로드 되는 파일의 경로가 inc/common.php로부터 filePath + gb + uploadFile을 가져왔는데 download.php 에서는 파일을 가져오는 경로가 filePath + fileName으로 되어서 attach/contact/<파일> 이 되지만 uploadaction.php에서는 gb값이 왜 추가가 되나요?? 다운로드 되는 경로가 결과적으로 실제 파일이 위치한 경로라는 것은 이해가 되지만 업로드 되는 소스코드는 왜 다운로드와 다른지 이해가 잘 안 가네요!
blind sql injection 2-9강의를 보면 ip/path/index.php?page=view&idx=8 and 1=1과 ip/path/index.php?page=view&idx=8 and 1=2의 실행결과가 다름을 이용해 blind sql injection에 취약하다고 결론을 내립니다. 그리고 이제 1=1 이 부분을 이용해서 정보를 알아낼텐데요. 만약 공격에 사용되는 여러 sql 함수들이 막혀있어서 막상 공격은 할 수 없다면 1=1, 1=2 의 결과가 다른 것만으로 취약점으로 볼 수 있나요? 실무에서도 개발자가 '저희는 공격에 사용되는 함수들은 막아놨어요' 라는 식으로 말하면 어떻게 대응해야할지 궁금합니다.
취약점 진단 보고서를 써보려고 하는데요. 강의에선 os command injection의 경우에 리버스쉘 획득 하는 것을 보여주셨습니다. 모의해킹의 경우엔 리버스쉘을 획득하는 과정을 거쳐야겠지만 취약점 진단의 경우라면 whoami 나 ls와 같이 시스템 명령을 실행가능함을 보여주는 것에서 멈춰야 하는거 맞나요?
권한 상승 단계 - 시스템 커널 취약점을 이용한 상위 권한 획득 강의에서 45010.c 파일을 45010으로 만들고 ./45010으로 실행했는데 [!] failed to load prog 'Permission denied' 이렇게 권한 문제가 나옵니다. 어떻게 해야 위 오류가 풀릴까요?
findViewById 를 후킹할 때 Java.use는 안 되고 Java.choose를 사용해야 하는 이유가 무엇인가요? findViewById는 MainActivity 에서만 정의된 메서드가 아니라 안드로이드에서 기본으로 제공하는 함수 아닌가요?? 이미 인스턴스가 생성되어 use로도 후킹 가능할 것 같은데 이유가 궁금합니다