做了三天web题了,因为刚入门,还是不要做得太快,先把前几天学到的好好总结一下,主要是做了几道bugku上的web题和合天网安的几道web题,这篇博客先写一些自己的收获,后面再写两篇writeup复习巩固一下做题思路。

1. 看源码

可以右键->【查看网页源代码】,也可以用火狐和谷歌浏览器的按F12键,按F12键可以修改html源代码方便构造一些值提交,但如果不需要的话直接右键查看源代码更直观,看网页里面的注释之类的都很方便。

2. 抓包

这几天接触到的抓包一般是用burpsuite,如果要多次尝试可以右键->【send to Repeater】,如果要对某个字段爆破可以右键->【send to Intruder】,这是我比较常用的两种burpsuite的功能。
今天还接触到谷歌浏览器:F12->Network->勾选【Preserve log】,也可以方便查看请求包和响应包的数据(包头字段和网页数据等)。

3. 关注的几个地方

有时候打开网页后感觉没有可疑的地方,首先查看下源代码,看有没有注释之类的提示信息,之后重新打开网页,抓抓包看下请求包响应包的包头数据有没有可疑的地方。

4. include漏洞

遇到php代码中有include($file)的,一般和 php://input或者php://filter有关,$file值如果是php://input,就要用post表单构造数据,如果是php://filter,就用下面的payload读取文件base64加密后的源代码,解密后查看源代码。

php://filter/read=convert.base64-encoding/resource=文件名(如index.php)

5. 代码审计

需要多次动态调试来尝试,以及要关注里面出现的函数,出现在关键位置的函数一般都是有用的,搜索一下有没有相关的漏洞。
还有一些和数据处理有关的绕过,如md5函数结果相等(0ed+)的比较,以及strcmp(array,string)=null,除了遇到时多百度之外,平时也需要多积累到时候才能想到。
还有GET参数构造的时候如果传入的是数组要记得加[],?txt[]=[1,2,3],如果填?txt=[1,2,3]似乎不会被当做array处理。

6.编码

JS的几种编码(如JSFUCK)都可以在浏览器F12之后的控制台执行,这样可以省去找解密网站的时间。
html编码,base64编码,url编码等等都可以在burpsuite上的decoder栏解决,但是发现burpsuite有一点不好就是中文不能显示,不知道是不是字符编码没有配置好,找到一个网址:
https://emn178.github.io/online-tools/base64_decode.html
可以解好几种,界面也很简洁。

7.SQL注入

最近搞清楚了布尔注入,盲注之类的意思,布尔注入就像一个只会告诉你对或错的机器人,然后你去问他问题从而解决问题,盲注是说不会有提示信息,虽然对数据库的操作依然存在,但是不论是否操作成功都不会告诉你。
a>对一个注入语句记个笔记:

%df' union select 1,database() %23
%df' union select 1,string from sql5.key %23
%df是在编码为gbk的时候用于宽字节注入的;%23就是#,但是用#不能通过;还有可以直接用 union select 字段名 from 数据库名.表名 的方式获取字段的值。

b>对用sqlmap进行手工注入的一些步骤记个笔记
首先找到可以注入的点,比如找到网页的某个动态页面是可以注入用来显示信息的,然后将这个url用sqlmap来暴库爆表。

python sqlmap.py -u "url" --level 3 --batch --dbs
python sqlmap.py -u "url" --level 3 --batch -D ctf --tables
python sqlmap.py -u "url" --level 3 --batch -D ctf -T flag --columns --dump

–batch sqlmap不会询问你输入 全部默认确定
–level 3 指定等级,大于等于3的时候会涉及到http头注入的Referer字段
–(两个-)符号用于查询,比如–dbs用于查询所有的数据库,–tables用于查询所有的表,-(一个-)符号用于指定,比如-D ctf用于指定查询的是ctf数据库,-T flag用于指定查询的是flag表,–dump可以用来将表中字段的值显示出来。
c>还有一些用union select来获得数据库信息的,链接
http://www.2cto.com/article/201208/151503.html
讲得很全面。

1. @@version()    MYSQL版本
2. @@database()   当前数据库
3. @@user()       当前用户
4. @@datadir      当前数据库路径
5. @@version_compile_os  操作系统版本
1. concat(str1,str2,...)                没有分隔符地连接字符串
2. concat_ws(separator,str1,str2,...)   用分隔符连接字符串
3. group_concat(str1,str2,...)          用逗号分隔字符串
1. 查数据库名,用户名
union select 1,2,concat(user(),database(),version()),4,……,N --
(最后--用于注释掉后面sql语句避免出错) 得到数据库名
2. 查表名:
union select group_concat(0x0a,table_name),2 from information_schema.tables where table_schema=库名十六进制#
(库名十六进制可以用database()代替)
3. 查列名
union select group_concat(0x0a,column_name),2 from information_schema.columns where table_schema=database() and table_name=’users’#
(也可以把表名改为十六进制编码0x7573657273)
4. 查需要的信息(用户名和密码)
union select group_concat(distinct 0x0a,user_id,0x0a,first_name,0x0a,last_name,0x0a,user,0x0a,password,0x0a),2 from users #

总结的都比较散碎也比较基础,以后积累的多了一些之后再来继续补充。

ctf-web--总结几点基础题的做题思路相关推荐

  1. sqli-lab_基础篇_1-23做题反思

    ################################################### sqli-lab 1-23做题反思 get 类 1-4题:联合查询: 特点:输入特殊符号有报错提 ...

  2. 阅读真题 | 真题阅读 做题记录 一

    如何做真题--五步做题法 如何记笔记--三化笔记法 1.转化 (不要听抄,听老师讲一段,暂停视频,用自己语言把刚才那一段学到的记下来) 2.简化(细节,大纲,关键词) (细节):记在工字右边,是用自己 ...

  3. 阅读真题 | 真题阅读 做题记录 二

    05年 Text3 梦可以被控制 本文学习要点: 阅读的逻辑.时间的对比 (now) .例证题的代词指代 .文/题中的比较级 (偷换概念) 第一遍  07.12 31. [题干注意点] [答案解析] ...

  4. 【软考四】软件知识产权基础知识(做题)

    以思维导图的形式展示,分值低,只需记.

  5. 计算机三级网络技术大题暴力做题法

    选择题部分请看这个: https://blog.csdn.net/weixin_44146025/article/details/100659379 第一大题求各种地址: 这题比较固定.前面的选择应该 ...

  6. 拼题a做题时遇到的知识点

    写完程序后提交若有一到两个答案错误,很有可能是边界出错,应该仔细检查边界. math.h的Pow函数返回double型的值 四舍五入函数为math.h里的round函数  返回的double类型的值 ...

  7. 跨考计算机教研室,跨考教研室专家:脱离题海沉浮 做到有效做题_跨考网

    很多同学在考研数学复习时,只知道一味的做题,诚然做题是必须的,但是应该采取相应的规划,有思想.有计划的去做题.那么,如何做题能够有效高效的提升数学水准呢,这里跨考教育教研室李老师给大家几点建议. 思考 ...

  8. 政考网怎么样?公考这样做题,快速上岸

    公考成"公"之路不容易.备考公务员考试对于考生来说,是一件需要强大的坚持信念和实际的学习耐心,找到靠谱的培训机构,才能够顺利通关上岸.听说政考网是一家专业做公务员培训考试的,很多考 ...

  9. 计算机小高考要点,“小高考”临近,4大技巧提高做题速度,拿下分数!

    原标题:"小高考"临近,4大技巧提高做题速度,拿下分数! 今日话题 在考场上,影响分数的不只有答题的准确性,还有答题的速度.两者皆备,何惧拿不到高分. 答题的准确性,取决于你的学习 ...

最新文章

  1. Mui.ajax请求服务器正确返回json数据格式
  2. android源码出现的@字符意义总结
  3. python类和对象介绍_python中的类,对象,方法,属性等介绍
  4. 前n个正整数相乘的时间复杂度为_初一数学必学必考的21个知识点,附第一章有理数测试卷...
  5. JAVA报表工具中更为动态的SQL查询(FineReport)
  6. 【OpenKruise v0.9.0】新增 Pod 重启、删除防护等重磅功能
  7. Android okHttp上传图片
  8. 产品型号 计算机硬件,主流CPU产品型号后缀名详解_CPUCPU评测-中关村在线
  9. 从研发到管理,这十大技巧助我提升了领导力
  10. loadrunner ftp linux,loadrunner ftp协议使用详细步骤
  11. java版b2b2c社交电商spring cloud分布式微服务(十)高可用的服务注册中心
  12. mysql truncate语句_MySQL truncate table语句
  13. 魔鬼数学——大数据时代,数学思维的力量
  14. 使用chrome控制台下载页面图片
  15. yum.repos.d目录中文件消失如何解决
  16. Firefox支持Websocket
  17. 2022年蓝桥杯Python程序设计B组思路和代码分享
  18. DBMS/Database:数据库管理的简介、安装(注意事项等)、学习路线(基于SQLSever深入理解SQL命令语句综合篇《初级→中级→高级》/几十项代码案例集合)之详细攻略
  19. 怎样用文言文优雅地装逼!28万行唐诗中找出对称矩阵
  20. Python练习题——第九题:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

热门文章

  1. traefik -- 流量复制
  2. 【Android】AndroidStudio新建安卓项目、更改项目logo及生成APK签名安装包
  3. 数据结构与算法分析:哈希表
  4. 颠覆传统网文?有人已经用ChatGPT写书,放网上卖了第一桶金!
  5. 千峰笔记【数通基础】③ DHCP、DNS、FTP、WEB服务器搭建(Windows2003)
  6. matlab画西瓜程序,简笔画:如何使用Flash绘制西瓜,大师来详解
  7. 超高速信号采集板CPCI6U-ADC-1Ch5G
  8. Kali Linux渗透测试小实践——Metasploit与后门木马
  9. springboot注解 + mybatisplus拦截器实现数据权限拦截(兼容分页插件)
  10. HTML5 Canvas火焰效果 像火球发射一样