DINGA DINGA
article thumbnail
[LOS] orc
WEB/LOS 2021. 5. 7. 11:58

pw 값이 일치해야 풀리는 문제다. 알고 있는 값이 없기 때문에 우선 패스워드의 길이를 알아내려고 한다. 아래와 같은 쿼리문을 작성하여 pw의 길이를 1부터 대입해봤다. 8까지 입력하니 Hello admin이 출력된다. 즉, pw의 길이가 8이라는 말이다. 이제 pw를 한 자리씩 찾아야 한다. 아래의 쿼리를 이용할 것이다. ?pw=' or id='admin' and substring(pw, n, 1)='a substring() 함수를 이용해 pw의 n번째 자리가 a인지 판단한다. 더보기 첫 번째 자리: 0 두 번째 자리: 9 세 번째 자리: 5 네 번째 자리: a 다섯 번째 자리: 9 여섯 번째 자리: 8 일곱 번째 자리: 5 여덟 번째 자리: 2 이렇게 찾은 8자리 패스워드는 095a9852 다. 이제..

article thumbnail
[Natas] Level 8 → Level 9
WEB/Natas 2021. 5. 7. 10:56

natas9.natas.labs.overthewire.org/ natas9/W0mMhUcRRnG8dcghE4qvk3JA9lGt8nDl 로 로그인 Find words containing이라고 한다. 확인해보기 위해 아무 값이나 입력해보자. 'test'를 입력했는데 위와 같이 출력되었다. 'test'가 포함된 단어를 출력하는 것 같다. 이제 소스코드를 확인해보자. input이 needle이라는 변수로 저장되고, 만약 key와 다르면 'key'를 포함하는 단어를 출력한다. passthru() 함수는 외부 프로그램을 실행하고 실행되는 동안 실시간 화면을 출력하는 함수다. exec(), system() 함수와 기능이 비슷한데, passthru()는 입력값이 이진 데이터일 때 사용한다고 한다. ;ls -al; 을 ..

article thumbnail
[Natas] Level 7 → Level 8
WEB/Natas 2021. 5. 7. 10:22

natas8.natas.labs.overthewire.org/ natas8/DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe 로 로그인 View sourcecode로 전체 소스코드를 확인해보자. $encodedSecret이라는 것이 보이고, encodeSecret 함수도 보인다. 우리가 입력한 값은 encodeSecret 함수를 거치는데, 이때 값은 base64로 인코딩되어 strrev 함수를 통해 문자열이 거꾸로 뒤집힌 뒤 hex 값으로 변환된다. 그리고 그 값이 encodedSecret 값과 같으면 문제가 풀리는 것 같다. 그렇다면 소스코드에 나와 있는 encodedSecret(3d3d516343746d4d6d6c315669563362)을 디코딩해 해결해보자. 먼저 hex 디코더로 3d3d5..

article thumbnail
[HackerRank] Tree: Preorder Traversal
C & C++/HackerRank 2021. 5. 7. 09:51

www.hackerrank.com/challenges/tree-preorder-traversal/problem Tree: Preorder Traversal | HackerRank Print the preorder traversal of a binary tree. www.hackerrank.com Data Structures > Trees 트리가 주어지면 preorder로 출력하는 함수 preOrder()를 작성한다. 코드 void preOrder(struct node *root) { struct node *temp; temp = root; if (temp){ printf("%d ", temp->data); if (temp->left) preOrder(temp->left); if (temp->right) ..

728x90