登陆一下可以么?

打开连接出现以下情况:

先试试username=admin‘--&password=‘or‘‘=‘

回显:

对不起,没有此用户!

这时候--和or被过滤看起来好可怕,但是单引号‘没被过滤就是最幸福的事儿了(虽然有可能是经过转义的,但题目中说只是过滤,没说转义,( # ▽ # ))
这时候其实只要帐号和密码都上万能密码,啥都搞定,看似被过滤了n多n多,但却是最容易注入进去的。

来一个过法:)
username=TGhost‘=‘&password=TGhost‘=‘

flag立马就拿到,为何能过呢?很多人就疑问了?没有or也能万能注入?
解析过程看下面
- - - - - - - - - - - -
假设sql语句如下
select * from user where username=‘用户名‘ and password=‘密码‘

当提交username=TGhost=‘&password=TGhost‘=‘
语句会变成如下:
select * from user where username=‘TGhost‘=‘‘ and password=‘TGhost‘=‘‘
这时候还不够清晰,我提取前一段判断出来(后面的同样道理)
username=‘TGhost‘=‘‘
这是有2个等号,然后计算顺序从左到右,
先计算username=‘TGhost‘ 一般数据库里不可能有我这个小名(若有,你就换一个字符串),所以这里返回值为0(相当于false)
然后0=‘‘ 这个结果呢?看到这里估计你也懂了,就是返回1(相当于true)

所以这样的注入相当于
select * from user where 1 and 1
也等于 select * from user
(这题只有筛选出来的结果有3个以上才会显示flag,没有就一直说“对不起,没有此用户!!”)

好了,继续唠叨几句,上面那个比较是弱类型的比较,
以下情况都会为true
1=‘1‘
1=‘1.0‘
1=‘1后接字母(再后面有数字也可以)‘
0=‘除了非0数字开头的字符串‘
(总体上只要前面达成0的话,要使语句为true很简单,所以这题的万能密码只要按照我上面的法子去写一大把)

tips:0=‘除了非0数字开头的字符串‘,这个我修改为0=‘字母开头的字符串‘还有=‘0开头但后面没接其他数字的字符串‘

时间: 2024-10-22 16:39:48

登陆一下可以么?的相关文章

linux 本地账号密码无法登陆,一直返回 登陆的login界面

登陆redhat一直是返回login,账号和密码没错 通过ssh crt类的软件远程连接系统 然后更改文件   vi /etc/pam.d/login 把 :session required /lib/security/pam_limits.so 更改为:session required /lib64/security/pam_limits.so wq保存

php判断是手机登陆还是PC登陆

// 判断是手机登陆还是PC登陆 function ismobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) return true; //此条摘自TPM智能切换模板引擎,适合TPM开发 if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT']) return true; //

登陆密码验证,超过3次退出

import getpass i = 3 while i > 0: x = input ('请输入用户名:') y = getpass.getpass('请输入密码:') if x == '123' and y == '456': print('登陆成功') break else: print('请重新输入') i -= 1 if i == 0: print('错误次数超过3次')

python爬虫 模拟登陆校园网-初级

最近跟同学学习爬虫的时候看到网上有个帖子,好像是山大校园网不稳定,用py做了个模拟登陆很有趣,于是我走上了一条不归路..... 先上一张校园网截图 首先弄清一下模拟登陆的原理: 1:服务器判定浏览器登录使用浏览器标识,需要模拟登陆 2: 需要post账号,密码,以及学校id python走起,我用的2.7版本,用notepad++写的,绑定python可以直接运行 由于是模拟网页登陆,需要导入urllib urllib2 cookielib库,前两个有与网页直接的接口,cookielib就是用来

Eclipse通过jdbc连接数据库制作简单登陆界面

一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了,HTML/CSS+JS可以实现对界面的描绘渲染,而JAVA则可以做后台数据处理,XML也是可以当作传输数据的介质(思考:XML比HTML强大这么多,为什么它没能替代HTML?): 这篇文章通过简单的JSP文件实现登陆界面,所以只用到了以下技术: HTML/CSS,简单演示就不做CSS样式了,可自行学

MySQL之MySQL:prompt 设置 -登陆MySQL显示用户名和主机以及当前数据库

是开始但愿不是结束,是起点但愿不是终点 今天在做MySQL练习过程中,突然发现,登陆mysql后,命令行不能显示用户名和主机信息,同时呢,想查看数据库信息还需要查看select datebase()命令查看,特别不方便,因此特别查看了mysql的相关资料,每次通过客户端登陆怎么才能显示这些信息呢?其实MySQL的相关设置都在配置文件my.cnf中可以设置.因此就去看my.cnf文件,之前就使用下,没有细心看.my.cnf配置文件中两大部分:[client]和[mysqld],前者是客户端的配置参

VC客户端无法登陆都是REDO日志惹的祸

环境:VSPHERE5.5+独立oracle 11G数据库 现象:打开vcenter服务器控制台,输入密码后卡在欢迎界面无响应,客户端也无法正常登陆. 正常重启也不行.由于VC所在虚机为独立磁盘无法做快照,不能备当时状态. 查看所在WINDOWS系统日志发现硬件可能有问题. 这是偏移量,并不能代表硬件有问题,怀疑VC连接的数据库有问题,逐登陆排查.1.登陆11.15.146.2 首先查看数据库进程,正常. 2.查看数据库的告警日志,发现一个问题. 这个实际上是个比较常见的错误.通常来说是因为在日

jsp页面做文件上传时遇到要根据登陆名按钮显示或隐藏的情况

项目遇到的情况要根据登陆的角色不同显示或隐藏按钮,因为之前没有遇到过 所以有些不知道怎么下手,百度解决了 方法如下: document.getElementById("#anniu").hide() <button id="anniu">隐藏按钮</button>

linux 使用msmtp登陆指定账户发送邮件

linux可以直接用mail发送邮件给对方,但是这种邮件,容易被QQ邮箱或者其他邮箱拦截掉 所以必须用指定账户发送邮件,才不会拦截. msmtp 是一个SMTP 客户端. 在默认情况下,它把邮件送给负责发邮件的SMTP 服务器 安装msmtp 下载最新版本 http://iweb.dl.sourceforge.net/project/msmtp/msmtp/1.6.3/msmtp-1.6.3.tar.xz tar xvf msmtp-1.6.3.tar.xz -C /usr/src cd /us

CAS在登陆页停留过长时登陆后重回登陆页的问题

CAS停留在登陆页重复时间过长,导致重复登陆的情况: 调试源代码后发现是如下问题: FlowHnadlerAdapter第183行报错导致了Spring直接302跳转.报错信息如下: org.springframework.webflow.execution.repository.NoSuchFlowExecutionException: No flow execution could be found with key 'e1s1' -- perhaps this executing flow