Concernant le système de triche des sites de vote qui limite l'IP, cette méthode profite de certaines failles des sites de vote pour surveiller les adresses IP distantes. Il n'y a pas de véritable adresse IP falsifiée. HTTP est la septième couche au-dessus de TCP, ce qui est impossible. qui a falsifié une véritable adresse IP avait récemment besoin d'un logiciel de vote. J'ai récemment fait des recherches sur ce site Web de vote. Ce site Web de vote a un code de vérification et chaque IP est limitée à un vote. J'ai d'abord étudié le code de vérification :
Le code de vérification de ce site de vote est très simple au début, avec quatre chiffres standard dans des positions standard, ce qui est facile à identifier. Plus tard, cela a changé au point que le nombre de chiffres n'était pas nécessairement certain, et il y avait aussi des lettres, et les positions n'étaient pas nécessairement de haut en bas. Désormais, la reconnaissance du code de vérification était non seulement difficile pour le logiciel, mais également difficile. pour une identification manuelle. Il n'y a pas d'issue dans les montagnes et les rivières, mais il y a un autre village avec des saules sombres et des fleurs aux couleurs vives. Veuillez consulter le paragraphe suivant pour la répartition !
Après mes analyses et recherches continues, j'ai découvert qu'il y avait une faille dans sa vérification du code de vérification. J'ai découvert cette faille. Ce code de vérification est devenu inutile. Il n'est pas nécessaire d'identifier ou de vérifier le code. l'a contourné directement car il a seulement La page des options de vote définit le code js qui vérifie si le code de vérification est vide. Le code js est exécuté sur le client. L'effet de cette vérification est généralement nul. pour la commodité des utilisateurs. En tant que site Web de vote, il n'utilise que cette méthode de vérification qui ne vérifie pas si le code de vérification est vide sur la page dynamique de traitement du vote n'est vraiment pas flatteuse et comporte de grands dangers cachés pour la sécurité du site Web.
Concernant le problème du code de vérification, j'ai pris connaissance de la méthode de craquage. Tant que le fichier du code de vérification n'est pas directement accessible lors du vote, le code de vérification sera vide puisque sa page dynamique ne vérifie pas si le. le code de vérification est vide, donc tant que le paramètre du code de vérification est vide lors de la publication.
Ensuite, un autre problème est que ce site Web de vote vérifie l'adresse IP et restreint une adresse IP pour n'autoriser qu'un seul vote. Cela ne peut être réalisé qu'en utilisant un proxy, ou en se déconnectant et en se connectant constamment. Je ne pouvais vraiment pas penser à un autre bon moyen. Plus tard, cet ami a trouvé un programme qui peut voter sur ce site très rapidement. J'étais très curieux de connaître la solution IP de ce programme, alors j'ai demandé à mon ami de l'analyser.
Tout d'abord, j'ai étudié ce logiciel de vote en capturant des paquets. Une fois prêt, j'ai ouvert le programme de vote et "Rafraîchi ! Conflit logiciel rapide !" tous les programmes, il ne restait qu'un seul programme de capture de paquets et cela a quand même provoqué un conflit Haha, il s'avère que ce programme savait en fait que quelqu'un pourrait analyser son logiciel. Il a même parcouru les noms de processus pour vérifier s'il y avait des programmes suspects. S'il y avait un programme, il l'analyserait ou si le paquet est capturé, il refuserait de s'exécuter. Haha, actuellement je sais que les logiciels qu'il restreint incluent un logiciel de programmation en langage simple et un logiciel de capture de paquets WSockExpert_Cn. Haha, j'ai désactivé Yi Language, changé le nom de WSockExpert_Cn, j'ai réussi le test de sécurité du logiciel et je l'ai exécuté avec succès.
Voici le paquet de données pour lequel il a voté lors de mon utilisation :
POST /vote/view.php?sid=33act=vote HTTP/1.1 Accept: */* Referer: http://www.qdnfy.gov.cn/vote/vote.php Content-Type: application/x-www-form-urlencoded X-Forwarded-For: 218.20.218.200 CLIENT_IP: 218.20.218.200 VIA: 218.20.218.200 REMOTE_ADDR: 218.20.218.200 Accept-Language: zh-cn Accept-Encoding: text User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506) Host: www.qdnfy.gov.cn Cookie: PHPSESSID=pldjnb6scereodjm5niqb9q990 Content-Length: 49 Connection: Close
-Forwarded-For J'ai trouvé ce paramètre d'en-tête http suivi de IP, haha, ce paramètre doit avoir un peu d'expérience, il s'avère que je ne l'ai jamais connu, haha, cherchons-le sur Baidu.
Ce qui suit est un article explicatif de Baidu, il l'explique très bien.
Forger le champ X-Forwarded-For dans l'en-tête HTTP pour forger une IP Baidu a étudié le principe de X-Forwarded-For. Cette chose existe depuis longtemps. C'est la première fois que j'entends parler de X-. Forwarded-For : abréviation d'en-tête XFF, qui représente le client, c'est-à-dire la véritable IP du demandeur HTTP. Cet élément ne sera ajouté que lors du passage du proxy HTTP ou du serveur d'équilibrage de charge.
Il ne s'agit pas des informations d'en-tête de requête standard définies dans la RFC. Une introduction détaillée à cet élément peut être trouvée dans la documentation de développement du serveur proxy de cache Squid.
Le format standard est le suivant :
Il peut y avoir plusieurs informations d'en-tête For, séparées par des virgules. Le premier élément est la véritable adresse IP du client, et les autres le sont. les adresses IP de proxy ou d'équilibrage de charge qui sont passées par plusieurs apparaîtront après en avoir passé plusieurs.
Explication X-Forwarded-For du wiki http://en.wikipedia.org/wiki/X-Forwarded-For analyse :
Puisque nous voulons forger l'adresse IP du client, commençons par jetez un œil à la manière dont l'adresse IP du client est généralement obtenue (prenez PHP comme exemple). Ce code a été recherché sur Baidu. La plupart des sites Web peuvent utiliser ce code.
$user_IP = ($_SERVER["HTTP_VIA"]) ? //是否使用了代理 $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; //获取失败则从REMOTE_ADDR获取 $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; ?>
Déterminez d'abord si l'en-tête HTTP_VIA existe. L'en-tête HTTP_VIA représente si un serveur proxy est utilisé. Sinon, obtenez l'adresse IP du client à partir du champ REMOTE_ADDR. obtenir l'adresse IP du client à partir de X -Forwarded-Pour obtenir l'adresse IP du client, je suppose que de nombreux programmeurs proviennent du code Baidu.
Alors testons-le
Serveur. code :
//输出HTTP_X_FORWARDED_FOR echo "HTTP_X_FORWARDED_FOR:".$_SERVER["HTTP_X_FORWARDED_FOR"]; //输出REMOTE_ADDR echo "REMOTE_ADDR:". $_SERVER["REMOTE_ADDR"]; ?>
Vous pouvez voir que l'adresse IP du client obtenue REMOTE_ADDR est la vraie adresse.
Donc, si un site Web détermine l'adresse IP du client à partir de X-Forwarded-For, nous pouvons alors utiliser cette faille logique pour balayer les votes.
Pour plus d'articles liés à l'implémentation HTML du système de triche des sites de vote pour restreindre les adresses IP, veuillez prêter attention au site Web PHP chinois !