Meine Website wurde vor einem Monat angegriffen und heute habe ich einen Schwachstellenerkennungsbericht von 360 erhalten. Oh mein Gott, 360 macht so etwas immer noch?
SQL-Injection
Schwachstellen-Link 1:
http://xxx.com:80/index.php?alias=message&action=comment?comment-diary-id=1&comment-ip=182.118.33.8&comment-author=88888&comment-email =hacker@hacker.org&comment-url=http://www.hacker.org/&comment-text=88888&comment-submit=SEND&comment-parent=0 RLIKE (SELECT (CASE WHEN (4725=4725) THEN 0 ELSE 0x28 END))
Schwachstellen-Link 2:
http://xxx.com:80/index.php?alias=message' AND SLEEP(5)%20%23
Schwachstellen-Link 3:
http://xxx.com:80/index .php?cat=note' UND 'dSob'='dSob
xss
Schwachstellen-Link:
http://xxx.com:80/admin/login.php?req_url=/admin/index.php"><script>alert(42873)</script>
Warum wird es immer noch eingefügt, wenn ich beim Schreiben in die Datenbank Addslashes verwende? Müssen Link 1 und Link 2 kombiniert werden, um injiziert zu werden?
Was die zweite Sicherheitslücke betrifft, bin ich mir nicht sicher, wie ich mich dagegen wehren soll.
Ich habe keine eingehenden Untersuchungen zur Website-Sicherheit. Ich möchte Sie bitten, zu analysieren, wie dies erreicht wird und wie die Lücken geschlossen werden können.
Wenn Sie den Code in die Datenbank schreiben müssen, werde ich ihn veröffentlichen.
PS, Schreiblinks werden automatisch um SF gekürzt, daher wird nach http:
ein Leerzeichen eingefügt.
Nach dem Debuggen kann es tatsächlich injiziert werden ... Ich weiß immer noch nicht genug über SQL
Die endgültige in die Datenbank geschriebene Aussage lautet:
insert into comment values(NULL,1,1497261734,'88888',0,'hacker@hacker.org','http://www.hacker.org/','182.118.33.8','88888',0 RLIKE (SELECT (CASE WHEN (4725=4725) THEN 0 ELSE 0x28 END)) AND SLEEP(5)%20%23);
Ich würde gerne fragen, was der letzte Satz bedeutet
0 RLIKE (SELECT (CASE WHEN (4725=4725) THEN 0 ELSE 0x28 END)) AND SLEEP(5)%20%23
xss 嵌套html腳本代碼,參數應該轉為html實體。函數htmlspecialchars
連接1系通過輸入mysql的關鍵字去進行mysql如今,應該需要將關鍵字過濾。
當然其實所有防止注入最好的方式是用預處理!!!!
最好使用参数化查询,而不要使用SQL语句拼接的方式。
xss可以通过参数过滤,将类似
<script>
这样的脚本代码过滤掉。你这代码完全没过滤啊