从汇编生成shellcode的n种方法

第一种,添加asm代码到c中,然后gcc编译生成可执行代码,最后objdump: void main() { asm{ … } } 太麻烦,这里就不详细介绍了,基本上包含在第二种方法中   第二种,直接用NASM或者GAS生成elf文件,然后objdump: nasm -f elf print.asm ld -m elf_i386 -o print print.asm as test.asm -o test.o ld test.asm -o test objdump生成shellcode: objdump -d print2 | grep “^ ” | cut -d$’\t’ -f 2 | tr ‘\n’ ‘ ‘ | sed -e ‘s/ *$//’ | sed -e […]

GDB 调试dumped core文件

在调试堆栈溢出的时候,用gdb加载文件运行的时候的地址会和直接运行的地址有出入,这个时候我们需要先在没有gdb的情况下运行程序,程序崩溃会生成core文件 然后我们用gdb filename core进行调试 我在ubuntu上测试的时候会发现当前目录里面并没有生成core文件,在研究一番后发现需要修改/proc/sys/kernel/core_pattern 文件 然后我们用root来执行下面命令: $> mkdir -p /tmp/cores $> chmod a+rwx /tmp/cores $> echo “/tmp/cores/core.%e.%p.%h.%t” > /proc/sys/kernel/core_pattern 然后在运行文件,然后会在/tmp/cores目录下面生成core文件: ➜ challenge11 git:(master) ✗ ll /tmp/cores total 100K -rw——- 1 kow kow 516K Jan 15 00:07 core.challenge11.25425.ubuntu.1516003636 然后就可以调试了: ➜ challenge11 git:(master) ✗ gdb challenge11 /tmp/cores/core.challenge11.25425.ubuntu.1516003636 GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1 Copyright (C) 2016 Free […]

GDB useful addons or plugins

Helpful GDB Plugins: PEDA PEDA – Python Exploit Development Assistance for GDB https://github.com/longld/peda GEF GDB Enhanced Features https://github.com/hugsy/gef Lisa.py  LLDB Lisa.py: An Exploit Dev Swiss Army Knife. https://github.com/ant4g0nist/lisa.py Voltron Voltron is an extensible debugger UI toolkit written in Python. https://github.com/snare/voltron   How to use GDB debug: http://heather.cs.ucdavis.edu/~matloff/UnixAndC/CLanguage/Debug.html gdb命令笔记 gdb peda常用指令

some interesting linux command

1. Supervise command (run every 2s) watch “ls -larth” 2. Kill program using one port sudo fuser -k 8000/tcp 3. Limit memory usage for following commands ulimit -Sv 1000 # 1000 KBs = 1 MB ulimit -Sv unlimited # Remove limit 4. Rename selected files using a regular expression rename ‘s/\.bak$/.txt/’ *.bak 5. Get full […]

漏洞测试平台——SQLi-labs

SQLi-labs是个专门用来学习SQL注入的开源漏洞测试平台,基于php+mysql开发,所以里面涉及的SQL注入都是mysql语法。 下载的地址是https://github.com/Audi-1/sqli-labs 下载安装按照readme里面要求即可,这里不多废话。下面是每个题目的具体分析: 1、error based string sqli 首先是源码: 我们可以看到当mysql语句正确执行的时候,应用会打印结果,但是没有正确执行的时候会打印错误,所以这里我们并不能像有回显位注入那样直接注入mysql语句。我们需要利用报错信息进行注入。 原理其实比较简单,一般都是利用某函数X    比如X(exp)  mysql函数在执行的时候会先执行函数里面的exp,获取返回值,然后再把exp的返回值作为参数给X进行执行,当exp的返回值不符合X的传参要求时,会导致query错误,打印出错误。 直接贴上一个老毛子整理的error based的cheat sheet:https://blackfan.ru/mysql_game/ 构造exp:‘|polygon((select*from(select name_const(version(),1))x))%23 2、error based integer sqli 原理同一,只不过是注入点的变量是integer exp:|polygon((select*from(select name_const(version(),1))x))%23 3、注入点变量外有单引号和括号,在exp中添加对应的符号即可: exp:’)|polygon((select*from(select name_const(version(),1))x))%23 4 、双引号加括号的error based 注入,变下exp即可: exp: “)|polygon((select*from(select name_const(version(),1))x))%23 5、string 单引号注入同第一题 exp: ‘ |polygon((select*from(select name_const(version(),1))x))%23 6、string 双引号注入 exp: “|polygon((select*from(select name_const(version(),1))x))%23 7、我们先看下源码: error_reporting(0); 这句话表示不再显示具体错误,只会显示“You have an error in your SQL syntax“,所以这里我们不能用前几题的error based注入,根据标题的提示“dump […]

从零开始学安全

最近投了一堆安全的summer intern,结果不是被拒就是杳无音讯,一个oa或者是电面的机会都没有,自己也实在提不起兴趣找SDE的工作。然后回顾自己去年一年,在学校挣扎着完成课程和在实验室写写代码,安全方面似乎没有丝毫的进步。 我发现自己总是在一件事情上不能坚持很长时间,还总是给自己找一堆事情来做,显得自己很牛逼,结果最后很多事情都做不好。 想来想去,发现就是自己还是太浮躁了,口口声声说自己对什么什么感兴趣,结果都是嘴上吹牛逼说说几个名词。如果要让我不借助网络来解释某个东西的原理,用中文十有八九都说不清楚,用英文就更不用说了。 眼看着自己还有一年就要毕业了,虽然说找到一个工作不是什么难事,但是自己浑浑噩噩的样子自己实在看不过去,这里自己做一个小小的计划,踏踏实实从零开始学习安全,然后自己的学习过程都用博客进行记录。对于遇到的每个问题都仔细研究,深入了解原理,learn it and hack it。 作为一个开篇的文章应该有个详细的计划,这里就罗列一下: 1、漏洞测试平台 2、CVE web类漏洞 3、bug bounty 4、自动化脚本 以上内容会不定时更新

bug bounty note—-UBER

free uber: POST /api/dial/v2/requests HTTP/1.1 Host: dial.uber.com {“start_latitude”:12.925151699999999,”start_longitude”:77.6657536, “product_id”:”db6779d6-d8da-479f-8ac7-8068f4dade6f”,”payment_method_id”:”xyz”} change payment_method_id reference url :http://www.anandpraka.sh/2017/03/how-anyone-could-have-used-uber-to-ride.html