web hacking 22

layer7 8차시 과제 - webhacking.kr 44번

· 이 페이지에 들어가보니 name이라는 사용자 입력칸이 있었고, 제출 버튼과 소스보기 버튼이 있었다. 아무 값이나 넣어서 제출해보니 'hello! {name}' 이런 식으로 출력되는 것 같았다. · 다음으로 소스보기에 들어가보니 내 생각이 맞았다는 것을 알 수 있었고, system()함수를 그 안에 필터링 없이 사용자 입력값을 넣어 실행하는 것으로 보아 command injection이라는 것을 알 수 있었다.

web hacking 2022.05.24

layer7 과제 - portswigger : Lab: SQL injection UNION attack, retrieving data from other tables

· 이 문제는 문제 이름에서 알 수 있듯이 UNION select 구문을 활용해 'administrator'라는 username 컬럼의 password를 users 테이블에서 가져오면 된다. · 또한 category에서 그런 취약점이 발생한다고 했으므로 처음엔 파라미터에 category변수를 넘겨주면서 그 내용을 'union select null .... from users where username='administrator'-- -'으로 정하고, 오류가 나지 않을 때까지 null의 개수를 늘려준다. · 오류가 나지 않는 컬럼의 개수를 찾아냈으면 그 중 password로 바꿨을 때 오류가 나지 않는 컬럼번호를 찾으면 administrator 계정의 비밀번호를 알아낼 수 있다.

web hacking 2022.05.22

layer7 과제 - webhacking.kr 42번

· 이 문제 사이트에 접속해보니 파일을 다운로드받을 수 있는 링크가 보이는 테이블이 화면에 출력됐는데, test.txt를 다운로드 해보니 별로 건질 내용이 없는 걸 보아하니 다운로드가 안 되는 flag.docx를 다운받아서 실행시키는 게 목적인 것 같다. · 일단 test.txt라도 다운받아서 열어봤지만, 별로 건질만한 내용이 없어서 그 다운로드 링크라도 메모장에 붙여넣어봤다. 그랬더니 맨 뒤에 파라미터로 down이라는 변수를 get방식으로 넘겨주고 있다는 사실을 알게 되었는데, 변수 내용이 'test.txt'가 아니라 암호화된 값이라서 당황했었다. 그러나 '='로 끝나는 암호는 대부분 base64로 인코딩 되어있다는 걸 알고 있었기 때문에 '이거라도 해보자'라는 마음으로 디코더에 올려봤다. 그랬더니....

web hacking 2022.05.22

layer7 과제 - webhacking.kr 28번

· 왠지 아닐 것 같았지만 일단 눈에 보이는 flag.php경로에 들어가보았다. flag.php경로에 들어갔다고 에러가 나진 않았지만, 화면에 아무것도 출력되지 않는 것을 보아, php파일이 실행되고 있는 것 같았다. 따라서 이 문제는 php 파일을 실행시키지 않고 읽어올 수 있는 방법을 찾는 문제라는 생각이 들었다. · 구글링을 하다보니 한 블로그를 발견했는데, 거기서는 특정폴더에서 php파일을 실행시키지 않게 하려면 .htaccess라는 파일을 하나 만들고, 거기 안에 php_value engine off라는 명령어를 넣어주면 php가 실행되지 않는다고 나와 있었다. · 그래서 그 방법대로 해보니 flag.php에 접속했을 때 코드가 실행되지 않았고, 코드 자체가 화면에 출력되었다.

web hacking 2022.05.22